插件窝 干货文章 linux远程登录ssh免密码配置的方法是什么

linux远程登录ssh免密码配置的方法是什么

SSH 公钥 密钥 authorized 943    来源:    2025-04-27

Linux SSH免密码登录配置方法

SSH免密码登录通过公钥认证实现,以下是详细配置步骤:

1. 生成密钥对(在客户端操作)

ssh-keygen -t rsa -b 4096
# 或使用更安全的ed25519算法
ssh-keygen -t ed25519

生成过程中会提示: - 密钥保存位置(默认~/.ssh/id_rsa) - 设置密码短语(可直接回车留空)

2. 将公钥上传到服务器

方法一:使用ssh-copy-id命令(最简单)

ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip

方法二:手动复制(当ssh-copy-id不可用时)

# 1. 查看公钥内容
cat ~/.ssh/id_rsa.pub

# 2. 登录服务器,将公钥内容追加到~/.ssh/authorized_keys
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "粘贴公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

3. 配置服务器SSH设置(可选)

编辑/etc/ssh/sshd_config确保以下设置:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no  # 禁用密码登录(更安全)

然后重启SSH服务:

sudo systemctl restart sshd
# 或
sudo service ssh restart

4. 测试连接

ssh username@server_ip

注意事项

  1. 权限设置非常重要:

    • .ssh目录权限应为700 (drwx------)
    • authorized_keys文件权限应为600 (-rw-------)
  2. 多台客户端使用不同密钥时,可在~/.ssh/config中配置:

Host server_alias
    HostName server_ip
    User username
    IdentityFile ~/.ssh/custom_key
  1. 安全性建议:

    • 为密钥设置密码短语更安全
    • 考虑使用ed25519算法替代RSA
    • 禁用root直接登录
  2. 如果连接失败,可查看详细日志:

ssh -v username@server_ip