我使用的是 Lubuntu 17.04,我尝试使用“scp”通过 ssh 远程复制文件,但登录的是主机,而不是本地。之后,当我尝试通过 ssh 登录时,出现此错误“连接到主机 foobar 端口 22:连接被拒绝”。
有效的方法:ssh localhost 确实有效,通过同一路由器在另一台 PC 上进行的 ssh host 也有效。
未起作用的事情:
sudo apt-get remove openssh-client openssh-server
sudo apt-get install openssh-client openssh-server
sudo ufw allow 22
ssh -p 22 foo@bar
ssh foo@IP
Going to /etc/ssh/sshd_config and setting "PermitRootLogin yes"
sudo rm /etc/ssh/sshd_config > sudo apt-get purge openssh-server > sudo apt-get install openssh-server
sudo iptables -L > sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
/etc/init.d/ssh restart and service ssh restart
rm -rf /root/.ssh/*
/etc/init.d/ssh restart
sudo service ssh restart
更改了 /etc/ssh/sshd_config,将端口 22 更改为端口 2222。
答案1
不允许 root 登录。这就像戴着“踢我”的标志。以普通用户身份传输文件。
我觉得你的代码有些乱七八糟,你把来自不同来源的建议粘贴在一起。最后两行暴露了你。这些是旧式服务启动器。在当前的 Ubuntu 中,你可以运行
sudo systemctl start ssh
既然您提到了 ufw,这让我怀疑您是否还在运行其他安全措施。如果您有 fail2ban,那么您的安全措施可能会阻止您的 SSH 登录,因为您尝试失败的次数太多。如果您在 /etc/hosts.deny 中进行了一些剪切和粘贴,则可能会导致同样的效果。
以下是我要做的。假设您以以下身份登录[电子邮件保护]并且您在其他系统上有相同的用户名。如果您在家中使用 2 个系统玩游戏,那么您拥有的可能是 IP 号码,例如 192.168.0.1,而不是系统名称。我猜数字更有可能。
在其他系统上,关闭 UFW 和其他阻塞程序(如 fail2ban),然后转到[电子邮件保护]系统。尝试
ping other.system
确保连接正常
ssh [email protected]
为了证明登录有效。然后注销,尝试
scp file.txt [email protected]:
这会将 file.txt 复制到其他系统。然后再次登录以确保文件在那里。
保持简单,不要从网站上复制/粘贴您不理解的代码。
在另一个系统上,执行 UFW 配置。不要直接运行 iptables。UFW 是 iptables 防火墙的简单接口。再次打开 UFW 防火墙。注销。如果您因 iptables 中的错误而陷入困境,也许这已经足够糟糕,需要重新启动。
尝试再次登录。如果被拒绝,则说明您的 UFW 设置不正确,必须转到其他系统,尝试修复,否则您将无法登录。
请注意,这里需要 home.com 上的 ssh 程序,但此时您不需要更改配置。传出 ssh 通常配置得足够。在其他系统上,配置通常不需要更改。允许 root 登录犯了一个灾难性的错误,不要给自己带来麻烦。
我意识到,如果您在两个帐户上都有名为“user”的帐户,则无需在这些命令中输入“user@”。我写这个是为了让新用户清楚了解。
如果问题是 fail2ban 阻止了你,并且你的用户被关进了监狱,我几年前写过关于如何清除它的说明(http://pj.freefaculty.org/blog)。
我想我的“老头子”信息是尝试理解你所运行的线路,并更加小心地复制其他发行版或时间的指令。