服务器部署经常会登录到远程服务,为方便操作,提高效率对运维人员来说设置免密登录还是很有必要的。其实也是很简单,安以下操作步骤即可。
1、进入到~/.ssh目录下,确认已经生成有公钥与私钥。如果没有请执行发下命令
bash
#进入到目录~/.ssh
cd ~/.ssh
#查看确认是否已经有密钥
ls
# 如果没有则执行下面命令,有的话可忽略
ssh-keygen
# 名字默认为id_rsa,也可以自定义,如自定义为:authorized_key
# passphrase可设置为空,实例在此设置为本机的密码
# authorized_key.pub为公钥,authorized为私钥
执行过程中输入要生成的公钥与私钥文件名,名称可以自定义,如下实例图,其中authorized_key是私钥,authorized_key.pub是公钥
2、上传公钥到服务器
bash
ssh-copy-id -i authorized_key.pub root@192.168.20.111
# root为远程服务器的用户名,192.168.20.111为远程服务器的ip地址
# 也可以直接登录远程服务器直接把公钥内容追加到远程服务器的公钥里
3、macOS需要执行以下命令,其他系统可忽略
bash
ssh-add -K authorized_key
4、创建远程登录快捷方式文件
bash
# 创建文件config
touch ~/.ssh/config
# 授权文件权限
chmod 600 ~/.ssh/*
5、向config文件中添加如下内容:
yaml
Host gateway
HostName 120.53.XX.XX
User root
IdentityFile ~/key/gateway
注:上面文件内容区分大小写,gateway是登录的快捷方式,实例如下图
6、macOS可以免密远程登录
bash
ssh gateway
实例如下图