net-ssh-clone 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 (117) hide show
  1. checksums.yaml +7 -0
  2. data/.dockerignore +6 -0
  3. data/.github/config/rubocop_linter_action.yml +4 -0
  4. data/.github/workflows/ci-with-docker.yml +44 -0
  5. data/.github/workflows/ci.yml +87 -0
  6. data/.github/workflows/rubocop.yml +13 -0
  7. data/.gitignore +13 -0
  8. data/.rubocop.yml +22 -0
  9. data/.rubocop_todo.yml +1081 -0
  10. data/CHANGES.txt +698 -0
  11. data/Dockerfile +27 -0
  12. data/Dockerfile.openssl3 +17 -0
  13. data/Gemfile +13 -0
  14. data/Gemfile.noed25519 +12 -0
  15. data/ISSUE_TEMPLATE.md +30 -0
  16. data/LICENSE.txt +19 -0
  17. data/Manifest +132 -0
  18. data/README.md +293 -0
  19. data/Rakefile +109 -0
  20. data/THANKS.txt +110 -0
  21. data/appveyor.yml +58 -0
  22. data/docker-compose.yml +23 -0
  23. data/lib/net/ssh/authentication/agent.rb +284 -0
  24. data/lib/net/ssh/authentication/certificate.rb +183 -0
  25. data/lib/net/ssh/authentication/constants.rb +20 -0
  26. data/lib/net/ssh/authentication/ed25519.rb +185 -0
  27. data/lib/net/ssh/authentication/ed25519_loader.rb +31 -0
  28. data/lib/net/ssh/authentication/key_manager.rb +310 -0
  29. data/lib/net/ssh/authentication/methods/abstract.rb +79 -0
  30. data/lib/net/ssh/authentication/methods/hostbased.rb +72 -0
  31. data/lib/net/ssh/authentication/methods/keyboard_interactive.rb +77 -0
  32. data/lib/net/ssh/authentication/methods/none.rb +34 -0
  33. data/lib/net/ssh/authentication/methods/password.rb +80 -0
  34. data/lib/net/ssh/authentication/methods/publickey.rb +137 -0
  35. data/lib/net/ssh/authentication/pageant.rb +497 -0
  36. data/lib/net/ssh/authentication/pub_key_fingerprint.rb +43 -0
  37. data/lib/net/ssh/authentication/session.rb +165 -0
  38. data/lib/net/ssh/buffer.rb +449 -0
  39. data/lib/net/ssh/buffered_io.rb +202 -0
  40. data/lib/net/ssh/config.rb +406 -0
  41. data/lib/net/ssh/connection/channel.rb +694 -0
  42. data/lib/net/ssh/connection/constants.rb +33 -0
  43. data/lib/net/ssh/connection/event_loop.rb +123 -0
  44. data/lib/net/ssh/connection/keepalive.rb +59 -0
  45. data/lib/net/ssh/connection/session.rb +712 -0
  46. data/lib/net/ssh/connection/term.rb +180 -0
  47. data/lib/net/ssh/errors.rb +106 -0
  48. data/lib/net/ssh/key_factory.rb +218 -0
  49. data/lib/net/ssh/known_hosts.rb +265 -0
  50. data/lib/net/ssh/loggable.rb +62 -0
  51. data/lib/net/ssh/packet.rb +106 -0
  52. data/lib/net/ssh/prompt.rb +62 -0
  53. data/lib/net/ssh/proxy/command.rb +123 -0
  54. data/lib/net/ssh/proxy/errors.rb +16 -0
  55. data/lib/net/ssh/proxy/http.rb +98 -0
  56. data/lib/net/ssh/proxy/https.rb +50 -0
  57. data/lib/net/ssh/proxy/jump.rb +54 -0
  58. data/lib/net/ssh/proxy/socks4.rb +67 -0
  59. data/lib/net/ssh/proxy/socks5.rb +140 -0
  60. data/lib/net/ssh/service/forward.rb +426 -0
  61. data/lib/net/ssh/test/channel.rb +147 -0
  62. data/lib/net/ssh/test/extensions.rb +173 -0
  63. data/lib/net/ssh/test/kex.rb +46 -0
  64. data/lib/net/ssh/test/local_packet.rb +53 -0
  65. data/lib/net/ssh/test/packet.rb +101 -0
  66. data/lib/net/ssh/test/remote_packet.rb +40 -0
  67. data/lib/net/ssh/test/script.rb +180 -0
  68. data/lib/net/ssh/test/socket.rb +65 -0
  69. data/lib/net/ssh/test.rb +94 -0
  70. data/lib/net/ssh/transport/algorithms.rb +502 -0
  71. data/lib/net/ssh/transport/cipher_factory.rb +103 -0
  72. data/lib/net/ssh/transport/constants.rb +40 -0
  73. data/lib/net/ssh/transport/ctr.rb +115 -0
  74. data/lib/net/ssh/transport/hmac/abstract.rb +97 -0
  75. data/lib/net/ssh/transport/hmac/md5.rb +10 -0
  76. data/lib/net/ssh/transport/hmac/md5_96.rb +9 -0
  77. data/lib/net/ssh/transport/hmac/none.rb +13 -0
  78. data/lib/net/ssh/transport/hmac/ripemd160.rb +11 -0
  79. data/lib/net/ssh/transport/hmac/sha1.rb +11 -0
  80. data/lib/net/ssh/transport/hmac/sha1_96.rb +9 -0
  81. data/lib/net/ssh/transport/hmac/sha2_256.rb +11 -0
  82. data/lib/net/ssh/transport/hmac/sha2_256_96.rb +9 -0
  83. data/lib/net/ssh/transport/hmac/sha2_256_etm.rb +12 -0
  84. data/lib/net/ssh/transport/hmac/sha2_512.rb +11 -0
  85. data/lib/net/ssh/transport/hmac/sha2_512_96.rb +9 -0
  86. data/lib/net/ssh/transport/hmac/sha2_512_etm.rb +12 -0
  87. data/lib/net/ssh/transport/hmac.rb +47 -0
  88. data/lib/net/ssh/transport/identity_cipher.rb +57 -0
  89. data/lib/net/ssh/transport/kex/abstract.rb +130 -0
  90. data/lib/net/ssh/transport/kex/abstract5656.rb +72 -0
  91. data/lib/net/ssh/transport/kex/curve25519_sha256.rb +39 -0
  92. data/lib/net/ssh/transport/kex/curve25519_sha256_loader.rb +30 -0
  93. data/lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb +37 -0
  94. data/lib/net/ssh/transport/kex/diffie_hellman_group14_sha256.rb +11 -0
  95. data/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +122 -0
  96. data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +72 -0
  97. data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha256.rb +11 -0
  98. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb +39 -0
  99. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp384.rb +21 -0
  100. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp521.rb +21 -0
  101. data/lib/net/ssh/transport/kex.rb +31 -0
  102. data/lib/net/ssh/transport/key_expander.rb +30 -0
  103. data/lib/net/ssh/transport/openssl.rb +274 -0
  104. data/lib/net/ssh/transport/packet_stream.rb +280 -0
  105. data/lib/net/ssh/transport/server_version.rb +77 -0
  106. data/lib/net/ssh/transport/session.rb +354 -0
  107. data/lib/net/ssh/transport/state.rb +208 -0
  108. data/lib/net/ssh/verifiers/accept_new.rb +33 -0
  109. data/lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb +33 -0
  110. data/lib/net/ssh/verifiers/always.rb +58 -0
  111. data/lib/net/ssh/verifiers/never.rb +19 -0
  112. data/lib/net/ssh/version.rb +68 -0
  113. data/lib/net/ssh.rb +330 -0
  114. data/net-ssh-public_cert.pem +20 -0
  115. data/net-ssh.gemspec +44 -0
  116. data/support/ssh_tunnel_bug.rb +65 -0
  117. metadata +277 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d49f4297f0b41e2c593f0d81a38500426b98e05989e1acdebdbc61415e3490e3
4
+ data.tar.gz: d39d7e56b8ad46df0002fe282810fcecb9068fe8b514f11e5309b0f4df30599f
5
+ SHA512:
6
+ metadata.gz: 2b7101b248ccb04b51f0e4ac54ba5fcb1a9dee52799d5a92e16b367a68c4e99e1dcafb46258eceafaf7d4614a1acacc2d189deb2c4d6ec47d08ff6beec3f5f31
7
+ data.tar.gz: 06e134732ac6d37337982da87851cbddec384ae55fc70c0f0641bd57eadf7a1931c14de25538ecac1c6c2e9ef49db1c55792840d20c54c778474e38c132f361d
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
@@ -0,0 +1,87 @@
1
+ name: CI
2
+ on:
3
+ pull_request:
4
+ push: { branches: master }
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-18.04
8
+ strategy:
9
+ matrix:
10
+ ruby-version: [2.6.6, 2.7.2, 3.0.1, 3.1.1]
11
+ steps:
12
+ - uses: actions/checkout@v1
13
+
14
+ - name: Set up Ruby ${{ matrix.ruby-version }}
15
+ uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: ${{ matrix.ruby-version }}
18
+ - name: Set up Python ${{ matrix.python-version }}
19
+ uses: actions/setup-python@v2
20
+ with:
21
+ python-version: 3.8
22
+
23
+ - name: Cache bundler
24
+ uses: actions/cache@v1
25
+ id: bundler-cache
26
+ with:
27
+ path: vendor/bundle
28
+ key: ${{ runner.os }}-${{ matrix.ruby-version }}-gem-v3-${{ hashFiles('**/Gemfile') }}-${{ hashFiles('**/net-ssh.gemspec') }}
29
+ restore-keys: |
30
+ ${{ runner.os }}-${{ matrix.ruby-version }}-gem-v3-
31
+
32
+ - name: Cache pip
33
+ uses: actions/cache@v1
34
+ id: pip-cache
35
+ with:
36
+ path: ~/.cache/pip
37
+ key: ${{ runner.os }}-pip-v1
38
+ restore-keys: |
39
+ ${{ runner.os }}-pip-v1
40
+ - name: Bundle install
41
+ run: |
42
+ gem install bundler
43
+ bundle config set path 'vendor/bundle'
44
+ bundle config set --local path 'vendor/bundle'
45
+ bundle install --jobs 4 --retry 3 --path vendor/bundle
46
+ BUNDLE_GEMFILE=./Gemfile.noed25519 bundle install --jobs 4 --retry 3 --path vendor/bundle
47
+ env:
48
+ BUNDLE_PATH: vendor/bundle
49
+
50
+ - name: Add to etc/hosts
51
+ run: |
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
59
+ - name: Ansible install
60
+ run: |
61
+ python -m pip install --upgrade pip
62
+ pip install ansible urllib3 pyOpenSSL ndg-httpsclient pyasn1
63
+ ansible-galaxy install rvm.ruby
64
+ pwd
65
+ uname -a
66
+ export
67
+ who am i
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
75
+ - name: Run Tests
76
+ run: bundle exec rake test
77
+ env:
78
+ NET_SSH_RUN_INTEGRATION_TESTS: 1
79
+ CI: 1
80
+ - name: Run Tests (without ed25519)
81
+ run: bundle exec rake test
82
+ env:
83
+ BUNDLE_GEMFILE: ./Gemfile.noed25519
84
+ NET_SSH_RUN_INTEGRATION_TESTS: 1
85
+ CI: 1
86
+ - name: Run test helper test
87
+ run: bundle exec rake test_test
@@ -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/.gitignore ADDED
@@ -0,0 +1,13 @@
1
+ /Gemfile.lock
2
+ /Gemfile.noed25519.lock
3
+ doc
4
+ rdoc
5
+ ri
6
+ pkg
7
+ *.swp
8
+ test/integration/.vagrant
9
+ test/integration/playbook.retry
10
+
11
+ .byebug_history
12
+
13
+ tryout
data/.rubocop.yml ADDED
@@ -0,0 +1,22 @@
1
+ AllCops:
2
+ Exclude:
3
+ - 'tryout/**/*'
4
+ - "vendor/**/.*"
5
+ - "vendor/**/*"
6
+ NewCops: enable
7
+ TargetRubyVersion: 2.6
8
+
9
+ inherit_from: .rubocop_todo.yml
10
+
11
+ Style/DoubleNegation:
12
+ Exclude:
13
+ - 'lib/net/ssh/key_factory.rb'
14
+
15
+ Layout/LineLength:
16
+ Max: 150
17
+ Exclude:
18
+ - 'test/**/*.rb'
19
+ - 'net-ssh.gemspec'
20
+
21
+ Style/EmptyLiteral:
22
+ Enabled: false