跳转到主内容
极星编程网:以代码为星,赴技术山海!

Linux如何配置SSH免密登录_LinuxSSH密钥认证完整步骤

配置SSH免密登录可提升远程管理效率,核心是使用密钥对验证。1. 在本地运行ssh-keygen生成私钥和公钥;2. 用ssh-copy-id或手动方式将公钥添加到服务器~/.ssh/authorized_keys;3. 设置正确权限:chmod 700 ~/.ssh 和 chmod 600 ~/.ssh/authorized_keys;4. 测试ssh登录是否免密成功;5. 可选优化:使用ssh-agent管理密钥、配置~/.ssh/config简化连接、禁用密码登录增强安全。检查PubkeyAuthentication yes及目录权限可排除常见问题。

配置SSH免密登录可以极大提升远程管理效率,避免重复输入密码。核心原理是使用密钥对(公钥+私钥)进行身份验证。以下是完整的操作步骤。

生成SSH密钥对在本地机器上生成密钥对,通常使用ssh-keygen

命令:

打开终端,执行:

ssh-keygen -t rsa -b 2048系统会提示保存路径(默认~/.ssh/id_rsa),可直接回车设置密钥密码(可选,留空则无需密码即可使用私钥)

执行完成后,会在~/.ssh/

目录下生成两个文件:

id_rsa(私钥)和id_rsa.pub(公钥)。

将公钥上传到目标服务器需要把本地的公钥内容添加到服务器的~/.ssh/authorized_keys

文件中。有两种常用方法:

CentOS Linux 7.9.2009 CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。

下载自动方式:使用ssh-copy-id命令

执行:

ssh-copy-id username@server_ip输入密码后,公钥会自动复制到服务器对应用户的authorized_keys中。

手动方式:若没有ssh-copy-id命令,可手动操作先用cat ~/.ssh/id_rsa.pub查看公钥内容登录服务器,创建目录和文件:mkdir -p ~/.ssh echo "粘贴公钥内容" >> ~/.ssh/authorized_keys

设置正确权限:

chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys测试并验证免密登录配置完成后,尝试通过SSH连接服务器:

执行:

ssh username@server_ip如果未提示输入密码且成功登录,说明配置成功

若仍需密码,检查以下几点:

服务器端/etc/ssh/sshd_config

中是否启用公钥认证:

PubkeyAuthentication yes SELinux或防火墙是否阻止了连接用户家目录及.ssh目录权限是否过于开放(如其他用户可写)

提高安全性和便利性(可选)

进一步优化SSH体验:

使用ssh-agent管理私钥,避免每次使用都输入密钥密码配置~/.ssh/config

文件简化连接命令,例如:

Host myserverHostName server_ipUser usernameIdentityFile ~/.ssh/id_rsa禁用密码登录(谨慎操作)以增强安全性,在/etc/ssh/sshd_config

中设置:

PasswordAuthentication no

,然后重启SSH服务:

systemctl restart sshd基本上就这些。只要密钥放置正确、权限设置合理、SSH服务配置得当,免密登录就能稳定工作。

相关文章