我在笔记本电脑和服务器上都运行着 Ubuntu Xenial (16.0.4 LTS)。我使用上述技术增强了服务器的安全性这里和这里。
我能够使用默认 SSH 端口(22)从我的笔记本电脑通过 SSH 连接到服务器,但是当我尝试任何其他号码时,连接超时:
$ ssh -vvv phreakster@magicbox -p XXXX
OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "magicbox" port XXXX
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to magicbox [192.168.1.100] port XXXX.
debug1: connect to address 192.168.1.100 port XXXX: Connection timed out
ssh: connect to host magicbox port XXXX: Connection timed out
phreakster@CEBERUS:~$
我已修改并更新了我的/etc/ssh/sshd_config
,并成功重新启动了 SSH 守护程序。
为什么我不能使用其他端口号通过 SSH 连接到服务器?
[[编辑]]
根据我收到的一些反馈,我认为这可能是与防火墙相关的问题,因此我登录到服务器(从机器本身),并输入以下内容:
sudo ufw allow 4[XXX]/tcp
警告:使用最后找到的配置文件“Apache”重复 警告:使用最后找到的配置文件“Apache Secure”重复 警告:使用最后找到的配置文件“Apache Full”重复 规则已添加 规则已添加(v6)
phreakster@CEBERUS:~$ sudo ufw numbered
警告:重复配置文件“Apache”,使用上次找到的配置文件警告:重复配置文件“Apache Secure”,使用上次找到的配置文件警告:重复配置文件“Apache Full”,使用上次找到的配置文件状态:活动
操作从 --- ------ ---- 22 允许任何地方 4XXX 允许任何地方 22 (v6) 允许任何地方 4XXX (v6) 允许任何地方
然后我重新启动 SSH 服务:
sudo service ssh restart
这是我尝试从笔记本电脑登录时的 SSH 会话控制台调试输出:
phreakster@CEBERUS:~$ ssh -vvv phreakster@magicbox -p 4XXX
OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "magicbox" port 4XXX
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to magicbox [192.168.1.100] port 4XXX.
debug1: Connection established.
debug1: identity file /home/phreakster/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/phreakster/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/phreakster/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/phreakster/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/phreakster/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/phreakster/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/phreakster/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/phreakster/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.1 pat OpenSSH* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to magicbox:4XXX as 'phreakster'
debug3: put_host_port: [magicbox]:4XXX
debug3: hostkeys_foreach: reading file "/home/phreakster/.ssh/known_hosts"
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,ext-info-c
debug2: host key algorithms: [email protected],[email protected],[email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,aes192-cbc,aes256-cbc,3des-cbc
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,aes192-cbc,aes256-cbc,3des-cbc
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected],zlib
debug2: compression stoc: none,[email protected],zlib
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
debug2: host key algorithms: ssh-rsa,rsa-sha2-512,rsa-sha2-256
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected],zlib
debug2: compression stoc: none,[email protected],zlib
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: rsa-sha2-512
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: Server host key: ssh-rsa SHA256:6hMkyfTTLjmxw1l7t1N6QdyQ39/asNr3ysnf6YiZF90
debug3: put_host_port: [192.168.1.100]:4XXX
debug3: put_host_port: [magicbox]:4XXX
debug3: hostkeys_foreach: reading file "/home/phreakster/.ssh/known_hosts"
debug3: hostkeys_foreach: reading file "/home/phreakster/.ssh/known_hosts"
debug1: checking without port identifier
debug3: hostkeys_foreach: reading file "/home/phreakster/.ssh/known_hosts"
debug3: record_hostkey: found key type RSA in file /home/phreakster/.ssh/known_hosts:1
debug3: load_hostkeys: loaded 1 keys from magicbox
debug3: hostkeys_foreach: reading file "/home/phreakster/.ssh/known_hosts"
debug3: record_hostkey: found key type RSA in file /home/phreakster/.ssh/known_hosts:2
debug3: load_hostkeys: loaded 1 keys from 192.168.1.100
debug1: Host 'magicbox' is known and matches the RSA host key.
debug1: Found key in /home/phreakster/.ssh/known_hosts:1
debug1: found matching key w/out port
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug2: key: /home/phreakster/.ssh/id_rsa (0x5632e238dcc0), agent
debug2: key: /home/phreakster/.ssh/id_dsa ((nil))
debug2: key: /home/phreakster/.ssh/id_ecdsa ((nil))
debug2: key: /home/phreakster/.ssh/id_ed25519 ((nil))
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/phreakster/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 60
debug1: Server accepts key: pkalg rsa-sha2-512 blen 535
debug2: input_userauth_pk_ok: fp SHA256:bmRy0HPjGc4St7qkhRk8od6P+2+EruyEAutwGTtpGL8
debug3: sign_and_send_pubkey: RSA SHA256:bmRy0HPjGc4St7qkhRk8od6P+2+EruyEAutwGTtpGL8
sign_and_send_pubkey: signing failed: agent refused operation
debug1: Trying private key: /home/phreakster/.ssh/id_dsa
debug3: no such identity: /home/phreakster/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/phreakster/.ssh/id_ecdsa
debug3: no such identity: /home/phreakster/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /home/phreakster/.ssh/id_ed25519
debug3: no such identity: /home/phreakster/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
[[编辑2]]
我还做了以下事情:
- 删除了允许访问端口 22 上的服务器的 ufw 规则
- 添加了允许访问端口 4XXX 的 ufw 规则
- 修改 /etc/ufw/applications.d/openssh-server 并将端口从 22 更改为 4XXX
我重新启动了 SSHD,但仍然收到此问题前面显示的错误调试消息。
那么,我该怎么做才能使用 SSH 连接到使用非标准端口的远程服务器?
[[更新]]
经过上述所有实验并尝试自己解决问题后,现在我甚至无法使用端口 22 登录服务器 - FML!