net-ssh 6.2.0.rc2 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.dockerignore +6 -0
  4. data/.github/config/rubocop_linter_action.yml +4 -0
  5. data/.github/workflows/ci-with-docker.yml +44 -0
  6. data/.github/workflows/ci.yml +22 -11
  7. data/.github/workflows/rubocop.yml +13 -0
  8. data/.rubocop.yml +12 -1
  9. data/.rubocop_todo.yml +470 -262
  10. data/CHANGES.txt +6 -0
  11. data/Dockerfile +27 -0
  12. data/Dockerfile.openssl3 +17 -0
  13. data/Gemfile +2 -0
  14. data/Gemfile.noed25519 +2 -0
  15. data/README.md +9 -3
  16. data/Rakefile +5 -0
  17. data/docker-compose.yml +23 -0
  18. data/lib/net/ssh/authentication/agent.rb +17 -15
  19. data/lib/net/ssh/authentication/certificate.rb +7 -5
  20. data/lib/net/ssh/authentication/constants.rb +0 -1
  21. data/lib/net/ssh/authentication/ed25519.rb +10 -6
  22. data/lib/net/ssh/authentication/ed25519_loader.rb +4 -7
  23. data/lib/net/ssh/authentication/key_manager.rb +46 -34
  24. data/lib/net/ssh/authentication/methods/abstract.rb +12 -3
  25. data/lib/net/ssh/authentication/methods/hostbased.rb +3 -5
  26. data/lib/net/ssh/authentication/methods/keyboard_interactive.rb +2 -2
  27. data/lib/net/ssh/authentication/methods/none.rb +6 -9
  28. data/lib/net/ssh/authentication/methods/password.rb +2 -3
  29. data/lib/net/ssh/authentication/methods/publickey.rb +56 -16
  30. data/lib/net/ssh/authentication/pageant.rb +97 -97
  31. data/lib/net/ssh/authentication/pub_key_fingerprint.rb +2 -2
  32. data/lib/net/ssh/authentication/session.rb +18 -17
  33. data/lib/net/ssh/buffer.rb +50 -30
  34. data/lib/net/ssh/buffered_io.rb +24 -25
  35. data/lib/net/ssh/config.rb +33 -20
  36. data/lib/net/ssh/connection/channel.rb +84 -83
  37. data/lib/net/ssh/connection/constants.rb +0 -4
  38. data/lib/net/ssh/connection/event_loop.rb +30 -24
  39. data/lib/net/ssh/connection/keepalive.rb +12 -12
  40. data/lib/net/ssh/connection/session.rb +108 -107
  41. data/lib/net/ssh/connection/term.rb +56 -58
  42. data/lib/net/ssh/errors.rb +12 -12
  43. data/lib/net/ssh/key_factory.rb +7 -8
  44. data/lib/net/ssh/known_hosts.rb +84 -15
  45. data/lib/net/ssh/loggable.rb +8 -9
  46. data/lib/net/ssh/packet.rb +1 -1
  47. data/lib/net/ssh/prompt.rb +9 -11
  48. data/lib/net/ssh/proxy/command.rb +1 -1
  49. data/lib/net/ssh/proxy/errors.rb +2 -4
  50. data/lib/net/ssh/proxy/http.rb +18 -20
  51. data/lib/net/ssh/proxy/https.rb +8 -10
  52. data/lib/net/ssh/proxy/jump.rb +8 -10
  53. data/lib/net/ssh/proxy/socks4.rb +2 -4
  54. data/lib/net/ssh/proxy/socks5.rb +3 -5
  55. data/lib/net/ssh/service/forward.rb +7 -7
  56. data/lib/net/ssh/test/channel.rb +23 -25
  57. data/lib/net/ssh/test/extensions.rb +35 -35
  58. data/lib/net/ssh/test/kex.rb +6 -8
  59. data/lib/net/ssh/test/local_packet.rb +0 -2
  60. data/lib/net/ssh/test/packet.rb +3 -3
  61. data/lib/net/ssh/test/remote_packet.rb +5 -7
  62. data/lib/net/ssh/test/script.rb +24 -26
  63. data/lib/net/ssh/test/socket.rb +12 -15
  64. data/lib/net/ssh/test.rb +4 -5
  65. data/lib/net/ssh/transport/algorithms.rb +14 -13
  66. data/lib/net/ssh/transport/cipher_factory.rb +28 -28
  67. data/lib/net/ssh/transport/constants.rb +3 -3
  68. data/lib/net/ssh/transport/ctr.rb +7 -7
  69. data/lib/net/ssh/transport/hmac/abstract.rb +4 -5
  70. data/lib/net/ssh/transport/hmac/md5.rb +0 -2
  71. data/lib/net/ssh/transport/hmac/md5_96.rb +0 -2
  72. data/lib/net/ssh/transport/hmac/none.rb +0 -2
  73. data/lib/net/ssh/transport/hmac/ripemd160.rb +0 -2
  74. data/lib/net/ssh/transport/hmac/sha1.rb +0 -2
  75. data/lib/net/ssh/transport/hmac/sha1_96.rb +0 -2
  76. data/lib/net/ssh/transport/hmac.rb +12 -12
  77. data/lib/net/ssh/transport/identity_cipher.rb +11 -13
  78. data/lib/net/ssh/transport/kex/abstract.rb +3 -3
  79. data/lib/net/ssh/transport/kex/abstract5656.rb +1 -1
  80. data/lib/net/ssh/transport/kex/curve25519_sha256.rb +2 -1
  81. data/lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb +4 -4
  82. data/lib/net/ssh/transport/kex/diffie_hellman_group14_sha256.rb +11 -0
  83. data/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +21 -21
  84. data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +1 -2
  85. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb +2 -2
  86. data/lib/net/ssh/transport/kex.rb +8 -6
  87. data/lib/net/ssh/transport/key_expander.rb +7 -8
  88. data/lib/net/ssh/transport/openssl.rb +38 -22
  89. data/lib/net/ssh/transport/packet_stream.rb +2 -3
  90. data/lib/net/ssh/transport/server_version.rb +17 -16
  91. data/lib/net/ssh/transport/session.rb +9 -7
  92. data/lib/net/ssh/transport/state.rb +43 -43
  93. data/lib/net/ssh/verifiers/accept_new.rb +0 -2
  94. data/lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb +1 -2
  95. data/lib/net/ssh/verifiers/always.rb +6 -4
  96. data/lib/net/ssh/verifiers/never.rb +0 -2
  97. data/lib/net/ssh/version.rb +4 -4
  98. data/lib/net/ssh.rb +4 -5
  99. data/net-ssh-public_cert.pem +8 -8
  100. data/net-ssh.gemspec +2 -2
  101. data/support/ssh_tunnel_bug.rb +3 -3
  102. data.tar.gz.sig +0 -0
  103. metadata +24 -17
  104. metadata.gz.sig +0 -0
  105. data/.travis.yml +0 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41c56dfbc79ea932b949dfc90f27bf3377cdbd3a48c32fd409db872562f38491
4
- data.tar.gz: 648aeea80bec0e871f4c8e26ea7e24773fbd8de8a0e8ccb305b00a3f96c53172
3
+ metadata.gz: '001243685ec6a8113bb04e55c5f75b50fb0386636ca40da012e6b0206844e793'
4
+ data.tar.gz: 6e4da1daaf0d6fc152df30865ec8ace047440b33323fa4a1abf947336876dd17
5
5
  SHA512:
6
- metadata.gz: 50ded00bb7ce3aa76167557dad7f2840d047c7861a5d3480fe3141bc67ccdcf502fd3a2dd4d1097d21467ec7cf83d1decd14809581e2203851eca52f083b1844
7
- data.tar.gz: '056481ae85b0919dac4b75cd7434ea921c4fa248a050ef3d6b19d0c38ac49e6f0824731c192d6a242f2b6eba5c684e28244f9b8d15341a5ead44db3aac1d48ea'
6
+ metadata.gz: 448b9447c97a464fa3c6431a15748dbb25bf79b3ac9ade31c0272a5558eec3180276ed0614c531b3f38910ef6af609e8f696fbb65fffc2288085b9268e7d1086
7
+ data.tar.gz: 8a425c4dc43f5657ae1391cce0aab1aa828fd3c03b6f3659a1dedb78e62ed08bd74696a86d8bf301bf2a093db9fc355f2f74d6e1e05117fa80e59bb136a55f58
checksums.yaml.gz.sig CHANGED
Binary file
data/.dockerignore ADDED
@@ -0,0 +1,6 @@
1
+ # Remove Git
2
+ .git/
3
+ .gitignore
4
+
5
+ docker-compose.yml
6
+ README.md
@@ -0,0 +1,4 @@
1
+ rubocop_fail_level: "convention"
2
+
3
+ versions:
4
+ rubocop: "1.27.0"
@@ -0,0 +1,44 @@
1
+ name: Test
2
+ on:
3
+ pull_request:
4
+ push: { branches: master }
5
+
6
+ jobs:
7
+ test:
8
+ name: Run test suite with docker
9
+ runs-on: ubuntu-latest
10
+ env:
11
+ COMPOSE_FILE: docker-compose.yml
12
+
13
+ steps:
14
+ - name: Checkout code
15
+ uses: actions/checkout@v2
16
+
17
+ - name: Build docker images
18
+ run: docker-compose build
19
+
20
+ - name: Run ruby 2.6
21
+ run: docker-compose run ruby-2.6
22
+
23
+ - name: Run ruby 2.7
24
+ run: docker-compose run ruby-2.7
25
+
26
+ - name: Run ruby 3.0
27
+ run: docker-compose run ruby-3.0
28
+
29
+ - name: Run ruby 3.1
30
+ run: docker-compose run ruby-3.1
31
+
32
+ test_openssl3:
33
+ name: Run test suite with docker and openssl 3.0
34
+ runs-on: ubuntu-latest
35
+
36
+ steps:
37
+ - name: Checkout code
38
+ uses: actions/checkout@v2
39
+
40
+ - name: Build docker images
41
+ run: docker build -t netssh_openssl3 -f Dockerfile.openssl3 .
42
+
43
+ - name: Run ruby 3.0 with openssl3
44
+ run: docker run --rm netssh_openssl3
@@ -1,11 +1,13 @@
1
1
  name: CI
2
- on: [pull_request]
2
+ on:
3
+ pull_request:
4
+ push: { branches: master }
3
5
  jobs:
4
6
  test:
5
- runs-on: ubuntu-latest
7
+ runs-on: ubuntu-18.04
6
8
  strategy:
7
9
  matrix:
8
- ruby-version: [2.7.2, 2.6.6, 2.5.8, 2.4.10, 3.0.0]
10
+ ruby-version: [2.6.6, 2.7.2, 3.0.1, 3.1.1]
9
11
  steps:
10
12
  - uses: actions/checkout@v1
11
13
 
@@ -16,7 +18,7 @@ jobs:
16
18
  - name: Set up Python ${{ matrix.python-version }}
17
19
  uses: actions/setup-python@v2
18
20
  with:
19
- python-version: 2.7
21
+ python-version: 3.8
20
22
 
21
23
  - name: Cache bundler
22
24
  uses: actions/cache@v1
@@ -48,6 +50,12 @@ jobs:
48
50
  - name: Add to etc/hosts
49
51
  run: |
50
52
  sudo echo "127.0.0.1 gateway.netssh" | sudo tee -a /etc/hosts
53
+ - name: Check sshd_config
54
+ run: sudo cat '/etc/ssh/sshd_config' || true
55
+ - name: Check sshd_config2
56
+ run: sudo cat /etc/ssh/sshd_config.d/*.conf || true
57
+ - name: Check sshd pid
58
+ run: sudo ps aux | grep sshd
51
59
  - name: Ansible install
52
60
  run: |
53
61
  python -m pip install --upgrade pip
@@ -58,19 +66,22 @@ jobs:
58
66
  export
59
67
  who am i
60
68
  ansible-playbook ./test/integration/playbook.yml -i "localhost," --become -c local -e 'no_rvm=true' -e 'myuser=runner' -e 'mygroup=runner' -e 'homedir=/home/runner'
69
+ - name: Check sshd_config
70
+ run: sudo cat '/etc/ssh/sshd_config' || true
71
+ - name: Check sshd pid
72
+ run: sudo ps aux | grep sshd
73
+ - name: Check sshd_config2
74
+ run: sudo cat /etc/ssh/sshd_config.d/*.conf || true
61
75
  - name: Run Tests
62
76
  run: bundle exec rake test
63
77
  env:
64
- NET_SSH_RUN_INTEGRATION_TESTS_DISABLED: 1
78
+ NET_SSH_RUN_INTEGRATION_TESTS: 1
79
+ CI: 1
65
80
  - name: Run Tests (without ed25519)
66
81
  run: bundle exec rake test
67
82
  env:
68
83
  BUNDLE_GEMFILE: ./Gemfile.noed25519
69
- NET_SSH_RUN_INTEGRATION_TESTS_DISABLED: 1
84
+ NET_SSH_RUN_INTEGRATION_TESTS: 1
85
+ CI: 1
70
86
  - name: Run test helper test
71
87
  run: bundle exec rake test_test
72
- - name: Rubocop
73
- if: matrix.ruby-version != '3.0.0'
74
- run: bundle exec rubocop
75
-
76
-
@@ -0,0 +1,13 @@
1
+ name: Rubocop
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v2
10
+ - name: Rubocop Linter Action
11
+ uses: andrewmcodes/rubocop-linter-action@v3.0.0.rc2
12
+ env:
13
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
data/.rubocop.yml CHANGED
@@ -1,11 +1,22 @@
1
+ AllCops:
2
+ Exclude:
3
+ - 'tryout/**/*'
4
+ - "vendor/**/.*"
5
+ - "vendor/**/*"
6
+ NewCops: enable
7
+ TargetRubyVersion: 2.6
8
+
1
9
  inherit_from: .rubocop_todo.yml
2
10
 
3
11
  Style/DoubleNegation:
4
12
  Exclude:
5
13
  - 'lib/net/ssh/key_factory.rb'
6
14
 
7
- Metrics/LineLength:
15
+ Layout/LineLength:
8
16
  Max: 150
9
17
  Exclude:
10
18
  - 'test/**/*.rb'
11
19
  - 'net-ssh.gemspec'
20
+
21
+ Style/EmptyLiteral:
22
+ Enabled: false