我正在尝试使用这个命令通过 ssh 连接到客户端计算机
ssh root@服务器ip
它立即给我带来了这个错误
ssh: connect to host xxx.xxx.xxx.xxx port 22: Connection refused
然后我尝试使用相同的命令访问本地服务器,结果成功了。
为了进一步的实验,我尝试做
远程控制[电子邮件保护]
它显示了同样的错误
这里有什么问题。有什么建议吗
答案1
远程服务器似乎在不同于默认端口(22)的端口上运行。您需要使用ssh user@host -p port
语法指定它。它在本地工作,因为端口是默认端口,即 22。服务器和本地服务器都需要一个包来提供 SSH 服务器,sshd
或者openssh
。它们可以通过以下方式安装:
sudo apt-get install openssh-server
或者
sudo apt-get install sshd
答案2
您需要在尝试连接的远程主机上运行 openssh 服务器。
在远程主机上:sudo apt-get install openssh-server 在远程主机上。IT 生成 rsa/dsa 密钥并将其放在 /etc/ssh 中
安装后,运行 ssh-keygen 生成 pub 和 priv 密钥,分别复制到 id_rsa 和 id_rsa.pub。这些文件被放置在运行此命令时创建的 .ssh 文件夹中。
然后将 id_rsa.pub 的内容复制到 authorized_keys 中导航到 $HOME/.ssh ,然后运行 cat id_rsa.pub >> authorized_keys
当您第一次尝试 ssh localhost 或任何其他主机时,known_hosts 文件会自动生成。
请注意,id_rsa.pub 和 known_hosts 文件的权限应该仅对组和其他人具有可读性。
现在从您的本地机器:ssh-copy-id -i $HOME/.ssh/id_rsa.pub yourremotehostname
它会询问是/否,并给出“是”。
下次您尝试 ssh yourremotehostname 时,它会愉快地登录您而不会要求您输入密码。
希望这可以帮助。