SSH远程服务器免密码连接|含注意事项细节
- 互联网
- 2025-09-06 02:24:02

需求描述:我想配置本地机器到ssh远程服务器的免密码连接,注意我日常会使用的集群有多个节点,每个节点的用户名以及密码都是一样的,但是不同节点的用户目录下的数据并不互通。
方案:
配置本地机器到 SSH 远程服务器的免密码连接,可以通过 SSH 密钥认证来实现。以下是详细的步骤:
1. 生成 SSH 密钥对
在本地机器上,生成一对 SSH 密钥(公钥和私钥)。如果你已经有一对密钥,可以跳过这一步。如果没有,可以使用以下命令生成:
ssh-keygen -t rsa -b 4096-t rsa 表示使用 RSA 算法。
-b 4096 表示密钥长度为 4096 位,更安全。
运行该命令后,系统会提示你输入密钥保存的位置(默认是 ~/.ssh/id_rsa)和密钥的密码(passphrase)。如果你希望完全免密码登录,可以不输入密码,直接按回车跳过。
2. 将公钥复制到远程服务器
使用 ssh-copy-id 命令将本地生成的公钥复制到远程服务器的 ~/.ssh/authorized_keys 文件中。假设远程服务器的用户名是 your_username,节点的 IP 地址是 node1,你可以运行以下命令:
ssh-copy-id your_username@node1如果服务器没有安装 ssh-copy-id,你可以手动复制公钥。步骤如下:
打开本地公钥文件(默认路径为 ~/.ssh/id_rsa.pub):
cat ~/.ssh/id_rsa.pub将公钥内容复制到远程服务器的 ~/.ssh/authorized_keys 文件中:
ssh your_username@node1 "mkdir -p ~/.ssh && echo 'PASTE_PUBLIC_KEY_HERE' >> ~/.ssh/authorized_keys"其中 PASTE_PUBLIC_KEY_HERE 是你从本地公钥文件中复制的内容。
3. 配置多个节点
由于你提到集群有多个节点,且每个节点的用户名和密码相同,但用户目录下的数据不互通,你需要对每个节点重复上述步骤。
例如,如果你有三个节点,IP 地址分别为 node1、node2 和 node3,你需要分别运行:
ssh-copy-id your_username@node1 ssh-copy-id your_username@node2 ssh-copy-id your_username@node3或者手动复制公钥到每个节点的 ~/.ssh/authorized_keys 文件中。
4. 检查和测试
完成上述步骤后,尝试从本地机器免密码登录到远程节点:
ssh your_username@node1 ssh your_username@node2 ssh your_username@node3如果一切配置正确,你应该能够直接登录,而无需输入密码。
5. 可选:配置 SSH 配置文件
如果你经常需要连接多个节点,可以通过本地的 SSH 配置文件(~/.ssh/config)来简化命令。例如:
Host node1 HostName node1 User your_username Host node2 HostName node2 User your_username Host node3 HostName node3 User your_username这样,你可以直接使用简化的命令登录:
ssh node1 ssh node2 ssh node3注意事项
权限问题:
确保远程服务器的 ~/.ssh 目录权限是 700(drwx------)。
确保 ~/.ssh/authorized_keys 文件的权限是 600(-rw-------)。
如果权限不正确,即使配置了公钥,也可能无法登录。
服务器配置:
确保远程服务器的 SSH 配置文件 /etc/ssh/sshd_config 中允许密钥认证:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no(可选,但更安全)
修改配置后,需要重启 SSH 服务:
sudo systemctl restart sshd安全性:
如果你没有为私钥设置密码(passphrase),请确保私钥文件的安全性,不要泄露给他人。
SSH远程服务器免密码连接|含注意事项细节由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“SSH远程服务器免密码连接|含注意事项细节”