摘要:
我尝试从笔记本电脑连接到台式机以传输文件,
sftp username@localIP
但出现连接超时
案例:
两台机器都使用 Linux 并连接到同一路由器:
机器 1:台式机使用 USB 网络共享电话连接到互联网,电话连接到与第二台机器相同的路由器
机器 2:笔记本电脑使用无线连接到互联网
使用以下设备的 IP hostname -I
:
台式机:192.168.42.130
笔记本电脑:192.168.1.2
问题:
我可以从台式机连接到笔记本电脑,但反之亦然。我在台式机->笔记本电脑上经常使用它,但每次我尝试从笔记本电脑->台式机连接时都会发生这种情况:(
需要 2 分钟)(ssh:连接到主机192.168.42.130
端口 22:连接超时连接已关闭)
1)尝试设置GSPAuthentication
为否
2)尝试设置UseDNS
为否
3)重新启动服务
但无济于事
更新:
以下是扫描问题后的结果(@AB 认为问题是由于 NAT 造成的)
注意:Len 是 Lenovo (ielaptop) 的缩写。
注意:路由器上只有两台 Linux 机器。 注意
:我没有电线,所以我在台式机上使用手机连接到互联网(使用 USB 网络共享)
1) 从笔记本电脑->台式机连接:
omar@omar-Len:~/Desktop$ sftp [email protected] ssh: connect to host 192.168.1.8 port 22: Connection refused Connection closed
2) 检查桌面地址(连接前):
omar@omar-LDesktop:~$ ip -brief address lo UNKNOWN 127.0.0.1/8 ::1/128 enp0s25 DOWN enp0s29f7u2 UNKNOWN 192.168.42.130/24 fe80::69ce:4a20:5a7e:433c/64
3)在笔记本电脑上检查打开的连接(在连接两台机器之前):
omar@omar-Len:~/Desktop$ netstat -tn | egrep -w 22 omar@omar-Len:~/Desktop$
(从pc->笔记本电脑连接两台机器)
4)检查打开的连接:(
桌面)
omar@omar-LDesktop:~$ netstat -tn | egrep -w 22 tcp 0 0 192.168.42.130:44644 192.168.1.2:22 ESTABLISHED
(笔记本电脑)
omar@omar-Len:~/Desktop$ netstat -tn | egrep -w 22 tcp 0 0 192.168.1.2:22 192.168.1.8:44644 ESTABLISHED
(桌面)
omar@omar-LDesktop:~$ ps -ef | grep [s]shd root 30538 1 0 19:07 ? 00:00:00 /usr/sbin/sshd -D
更新2:(我想通过互联网连接两台机器以避免NAT,所以这是我的试用)
我曾经sftp -vvv <publicIP>@<LocalIP>
从台式机->笔记本电脑连接,它要求我输入密码,当我输入密码时,它返回“权限被拒绝”,尽管如果我不使用它,它会正常连接<publicIP>
这是桌面上的调试日志:(注意,我更改了我的<publicIP>
)
sftp -vvv <publicIP>@omar-@[email protected]
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug2: resolving "192.168.1.2" port 22 debug2: ssh_connect_direct: needpriv 0 debug1: Connecting to 192.168.1.2 [192.168.1.2] port 22. debug1: Connection established. debug1: key_load_public: No such file or directory debug1: identity file /home/omar/.ssh/id_rsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/omar/.ssh/id_rsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/omar/.ssh/id_dsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/omar/.ssh/id_dsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/omar/.ssh/id_ecdsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/omar/.ssh/id_ecdsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/omar/.ssh/id_ed25519 type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/omar/.ssh/id_ed25519-cert type -1 debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 pat OpenSSH* compat 0x04000000 debug2: fd 3 setting O_NONBLOCK debug1: Authenticating to 192.168.1.2:22 as '<publicIP>@omar-@omar-Len' debug3: hostkeys_foreach: reading file "/home/omar/.ssh/known_hosts" debug3: record_hostkey: found key type ECDSA in file /home/omar/.ssh/known_hosts:1 debug3: load_hostkeys: loaded 1 keys from 192.168.1.2 debug3: order_hostkeyalgs: prefer hostkeyalgs: [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521 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: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c debug2: host key algorithms: [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected],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]
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 debug2: peer server KEXINIT proposal debug2: KEX algorithms: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1 debug2: host key algorithms: ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519 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]
debug2: compression stoc: none,[email protected]
debug2: languages ctos: debug2: languages stoc: debug2: first_kex_follows 0 debug2: reserved 0 debug1: kex: algorithm: curve25519-sha256 debug1: kex: host key algorithm: ecdsa-sha2-nistp256 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: <hostKey> SHA256:<SHA256> debug3: hostkeys_foreach: reading file "/home/omar/.ssh/known_hosts" debug3: record_hostkey: found key type ECDSA in file /home/omar/.ssh/known_hosts:1 debug3: load_hostkeys: loaded 1 keys from 192.168.1.2 debug1: Host '192.168.1.2' is known and matches the ECDSA host key. debug1: Found key in /home/omar/.ssh/known_hosts:1 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 debug1: SSH2_MSG_NEWKEYS received debug2: set_newkeys: mode 0 debug1: rekey after 134217728 blocks debug2: key: /home/omar/.ssh/id_rsa ((nil)) debug2: key: /home/omar/.ssh/id_dsa ((nil)) debug2: key: /home/omar/.ssh/id_ecdsa ((nil)) debug2: key: /home/omar/.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=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521> 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,password debug3: start over, passed a different list publickey,password 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: Trying private key: /home/omar/.ssh/id_rsa debug3: no such identity: /home/omar/.ssh/id_rsa: No such file or directory debug1: Trying private key: /home/omar/.ssh/id_dsa debug3: no such identity: /home/omar/.ssh/id_dsa: No such file or directory debug1: Trying private key: /home/omar/.ssh/id_ecdsa debug3: no such identity: /home/omar/.ssh/id_ecdsa: No such file or directory debug1: Trying private key: /home/omar/.ssh/id_ed25519 debug3: no such identity: /home/omar/.ssh/id_ed25519: No such file or directory debug2: we did not send a packet, disable method debug3: authmethod_lookup password debug3: remaining preferred: ,password debug3: authmethod_is_enabled password debug1: Next authentication method: password <publicIP>@omar-@[email protected]'s password: debug3: send packet: type 50 debug2: we sent a password packet, wait for reply debug3: receive packet: type 51 debug1: Authentications that can continue: publickey,password Permission denied, please try again.
这是笔记本电脑上的调试:
May 4 14:59:39 omar-Len sshd[10133]: Invalid user <publicIP>@omar-@omar-Len from 192.168.1.8 port 56890 May 4 14:59:44 omar-Len sshd[10133]: pam_unix(sshd:auth): check pass; user unknown May 4 14:59:44 omar-Len sshd[10133]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.8 May 4 14:59:47 omar-Len sshd[10133]: Failed password for invalid user <publicIP>@omar-@omar-Len from 192.168.1.8 port 56890 ssh2 May 4 14:59:49 omar-Len sshd[10133]: Connection closed by invalid user <publicIP>@omar-@omar-Len 192.168.1.8 port 56890 [preauth] May 4 15:03:50 omar-Len sudo: omar : TTY=pts/0 ; PWD=/home/omar/Desktop ; USER=root ; COMMAND=/bin/nano //var/log/auth.log May 4 15:03:50 omar-Len sudo: pam_unix(sudo:session): session opened for user root by (uid=0) May 4 15:04:12 omar-Len sudo: pam_unix(sudo:session): session closed for user root
答案1
当您在手机上使用网络共享时,它实际上会创建自己的本地专用网络并执行 NAT 等操作,将桌面隐藏在后面。这就是为什么台式机到笔记本电脑工作正常的原因,因为笔记本电脑是台式机的公共网络,可以通过电话访问。
但反之则不然。笔记本电脑或调制解调器无法查看并访问手机后面的网络。网络共享几乎没有取消 NAT 并让基本路由完成的选项,除非您可以在其上桥接 USB 和无线,否则您无能为力。
您收到的任何拒绝或失败登录可能来自路由器或网络外部的某些主机。
所以解决办法就是让桌面一直发起连接。