📜  scp 连接被拒绝 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:34:52.219000             🧑  作者: Mango

scp 连接被拒绝

简介

scp 是一种常用的基于 SSH 协议的文件传输工具,它可以在本地主机和远程主机之间进行文件传输。然而,有时候在使用 scp 时会出现连接被拒绝的错误,这个错误提示可能会如下所示:

ssh: connect to host xx.xx.xx.xx port 22: Connection refused
错误原因

连接被拒绝的错误通常是由于以下原因所致:

  1. 远程主机未开启 SSH 服务,或者 SSH 服务的端口不是默认的 22 端口;
  2. 远程主机所在的网络配置了防火墙,导致 SSH 服务无法访问;
  3. SSH 服务配置了安全限制,只允许使用特定的身份验证方式进行连接。
解决方法

针对以上错误原因,可以尝试以下解决方法:

  1. 确认远程主机是否开启了 SSH 服务,以及 SSH 服务的端口号是否为默认的 22 端口。可以通过在远程主机上运行以下命令来查看 SSH 服务的状态:

    sudo service ssh status
    
  2. 如果远程主机所在的网络配置了防火墙,需要将 SSH 服务所使用的端口放行,可以使用以下命令开启 (Ubuntu):

    sudo ufw allow ssh
    
  3. 如果 SSH 服务配置了安全限制,需要更改 SSH 配置文件以允许使用特定身份验证方式进行连接。在远程主机上打开 /etc/ssh/sshd_config 文件,找到 PasswordAuthenticationPubkeyAuthenticationChallengeResponseAuthentication 这三个参数,分别将它们的值改为 yes,然后重启 SSH 服务:

    sudo service ssh restart
    
结论

通过以上解决方法,您可以尝试修复 scp 连接被拒绝的错误。如果问题依然存在,可能需要更进一步的排查,例如检查本地和远程主机之间的网络连接是否正常。