一、mac上生成 sshkey
ssh-keygen -t rsa -C "10028@qq.com"
默认在 ~/.ssh 目录下生成 id_rsa.pub
和 id_rsa
两个文件。
二、配置服务器
1、在服务器的 ~/.ssh
目录下新建 authorized_keys
文件,如果有则直接使用。
2、将 本机id_rsa.pub
中的内容复制到 authorized_keys
中。
3、修改 sshd 配置文件
# 1、
$ sudo vim /etc/ssh/sshd_config
# 2、找到 PubkeyAuthentication 配置项,将其设置为 yes,一般情况下都是被注释了的,所以直接 删掉前面的 # 就行了
# 3、如果是root账户登录,则需要将 PermitRootLogin 设置为 yes
# 4、保存并重启sshd
sudo /etc/init.d/ssh restart
三、本机测试免密登录
$ ssh root@XXX.XXX.XXX.XXX
四、不同客户端免密登录同一台服务器
直接将不同客户端的 公钥复制到 服务器的 authorized_keys
文件中即可,记得要另起一行
。
五、本地不同的ssh-key 连接不同的服务器
1、ssh-keygen
生成不同的key,在这一步分别输入不同的key的名字就行,例如输入:tencent_key
和 aliyun_key
image.png
会在 ~/.ssh/
目录下生成 tencent_key、tencent_key.pub、aliyun_key、aliyun_key.pub
2、分别将 tencent_key.pub、aliyun_key.pub
复制到腾讯云和阿里云服务器的~/.ssh/authorized_keys
中
3、修改本机的 ~/.ssh/config
文件
Host tencent_service # 关键词 腾讯服务器
HostName 112.111.211.62 # 服务器IP
Port 22 # 端口
User ubuntu # 用户名
IdentityFile ~/.ssh/tencent_key # 认证文件
StrictHostKeyChecking yes # 关闭提示
Host aliyun_service # 关键词 阿里云服务器
HostName 222.221.221.222 # 服务器IP
Port 22 # 端口
User ubuntu # 用户名
IdentityFile ~/.ssh/aliyun_key # 认证文件
StrictHostKeyChecking yes # 关闭提示
注意:由于给两个服务器各添加了别名,所以免密登录的时候需要用别名
4、免密登录
$ ssh tencent_service
$ ssh aliyun_service