如何配置服务器以实现SSH免密登录?

服务器配置SSH免密登录

一、背景与概念

服务器配置ssh免密登录

SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中提供安全的远程登录和其他安全网络服务,SSH通过公钥和私钥进行身份验证,确保数据传输的安全性,免密登录则利用这种机制,通过预先配置的密钥对,实现无需密码的自动登录。

二、生成SSH密钥对

1. 检查现有密钥

在生成新的SSH密钥对之前,首先检查是否已有现有的密钥:

ls -al ~/.ssh/id_*.pub

如果存在现有密钥,可以选择使用或备份后生成新密钥,如果没有,执行以下命令生成新的4096位RSA密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

按Enter键接受默认文件位置和文件名,然后根据提示输入密码短语(可选)。

2. 查看生成的密钥

ls ~/.ssh/id_

输出示例:

服务器配置ssh免密登录
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

三、配置本地SSH客户端

编辑本地SSH配置文件~/.ssh/config,添加以下内容以指定要使用的密钥文件:

Host your_server_alias
    HostName your_server_ip_or_domain
    User your_username
    IdentityFile ~/.ssh/id_rsa

your_server_alias 替换为服务器别名,your_server_ip_or_domain 替换为服务器IP地址或域名,your_username 替换为远程用户名。

四、复制公钥到远程服务器

1. 使用ssh-copy-id 命令

ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@your_server_ip_or_domain

系统会提示输入远程用户的密码,成功后再尝试登录时将不需要再输入密码。

2. 手动复制

如果ssh-copy-id 不可用,可以手动复制:

cat ~/.ssh/id_rsa.pub | ssh your_username@your_server_ip_or_domain "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

确保~/.ssh 目录和authorized_keys 文件具有正确的权限:

服务器配置ssh免密登录
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

五、测试免密登录

尝试使用SSH登录远程服务器,确保能够无密码登录:

ssh your_username@your_server_ip_or_domain

如果一切顺利,将直接登录而无需输入密码。

六、禁用SSH密码验证(可选)

为了增强安全性,可以禁用密码验证,仅允许公钥认证,编辑远程服务器上的SSH配置文件/etc/ssh/sshd_config

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

保存文件并重启SSH服务:

sudo systemctl restart sshd # Ubuntu/Debian
sudo systemctl restart sshd   # CentOS/Fedora

FAQs

SSH免密登录的原理是什么?

SSH免密登录基于公钥和私钥的非对称加密机制,客户端生成一对密钥(公钥和私钥),将公钥复制到服务器的~/.ssh/authorized_keys 文件中,登录时,服务器使用公钥验证客户端的私钥签名,若匹配则允许登录,这种方式避免了传输密码的风险,提高了安全性。

2. 如果ssh-copy-id命令不可用,如何手动设置免密登录?

如果ssh-copy-id 命令不可用,可以手动复制公钥,假设客户端计算机上已生成id_rsa.pub 文件,可以使用以下命令将公钥内容追加到远程服务器的authorized_keys 文件中:

cat ~/.ssh/id_rsa.pub | ssh user@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

设置远程服务器上.ssh 目录和authorized_keys 文件的权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

这样即可完成手动设置SSH免密登录。

小伙伴们,上文介绍了“服务器配置ssh免密登录”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2024-11-27 21:25
下一篇 2024-11-27 21:46

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信