[Tips] Linux ssh 基于密钥文件免密登陆

  1. 服务端生成密钥文件
ssh-keygen -m PEM -t rsa -b 2048 -v -f mbp16_lgy -C "$(whoami)@$(hostname)-$(date -I)"

命令说明:
-m : key_format, 密钥的格式
-t:加密算法,有dsa ecdsa ed25519 rsa rsa1
-b:bits,加密位数
-v:打印详细输出
-f: 输出文件
-C:添加密钥对的说明comment。

  1. 重命名私钥
mv mbp16_lgy mbp16_lgy.pem
  1. 将公钥内容写入authorized_keys
cat ~/mbp16_lgy.pub >> ~/.ssh/authorized_keys

公钥可以删除了。

  1. 编辑/etc/ssh/sshd_config
    确保里面:
RSAAuthentication yes
PubkeyAuthentication yes

#下面这个如果是不注释的,那么文件要与公钥写入的文件一致
#AuthorizedKeysFile     %h/.ssh/authorized_keys

如有修改,需要重启ssh服务:

sudo service sshd restart
  1. 将pem私钥下载到本地
    在客户端机器上
scp -P 端口号 用户名@服务HOST:~/mbp16_lgy.pem ~/.ssh
chmod 700 ~/.ssh/mbp16_lgy.pem
  1. 编辑.ssh/config
    添加
Host alias别名
  HostName HOST域名或IP
  User 用户名
  Port 端口
  IdentityFile ~/.ssh/mbp16_lgy.pem
posted @ 2022-05-16 13:31  虚无真仙  阅读(59)  评论(0编辑  收藏  举报