linux免密登陆

330 阅读1分钟

客户端生成key

如果客户端存在id_rsa unix/linux默认位置为 "~/.ssh"目录下,如果没有可以用下面的命令生成

ssh-keygen -t rsa -C "user@email"

上传pub_key

需要将id_rsa.pub上传至指定服务器下的指定目录,如果服务器存在authorized_keys文件则会在该文件

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

修改权限

需要服务器.ssh目录以及authorized_keys文件权限

chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

ssh-agent

私钥设置了密码以后,每次使用都必须输入密码,ssh-agent命令就是为了解决这个问题

根据自己终端类型选择命令行环境

ssh-agent bash

or

ssh-agent zsh

启用ssh-agent

eval命令的作用,就是运行上面的ssh-agent命令的输出,设置环境变量

eval `ssh-agent`

ssh-add

在新建的 Shell 对话里面,使用ssh-add命令添加默认的私钥

ssh-add
Enter passphrase for /home/you/.ssh/id_dsa: ********
Identity added: /home/you/.ssh/id_dsa (/home/you/.ssh/id_dsa)

这样以后登陆服务器就可以使用 ssh 命令正常登录远程服务器。

参考

阮一峰ssh教程