设置SSH别名免密登录服务器
最原始的SSH登录服务器的方式如下:
(Local):~ $ ssh username@ip
username@ip's password: $ *******
Login successfully.
SSH密钥登录安全性非常高。
别名登录将每个服务器的登录信息记录在配置文件config中,使得只需要输入别名即可登录。
为简化登录流程,采取别名+免密配置,在本地主机上生成了私钥与公钥后,再将公钥复制到多个服务器中,每个服务器将公钥加入授权密钥,则可实现免密登录多个服务器。
一、设置别名
为了偷懒[狗头]
用一个别名来替代 'username@ip'
- 打开ssh配置文件
~/.ssh/config
- windows: 文本文档打开or 终端
notepad ~/.ssh/config
- mac/linux:
vim ~/.ssh/config
- 修改ssh配置文件
Host Nickname # 别名 HostName ip # ip或网址,指向服务器 Port 22 # 默认22 User username # 设置用户名
二、免密登录(密钥登录)
密钥登录指的是,
-
生成密钥对
(Local):~ $ cd ~/.ssh (Local):~/.ssh $ ssh-keygen -b 4096 -t rsa -C custom_comment
修改custom_comment为自己定义,会显示在公钥中。
值得注意的是,私钥只有一个,所以以上操作会覆盖原有的公私钥。
-
将生成的公钥(*.pub)复制到远程服务器的.ssh文件夹中(username是管理员赋予你的账户名,ip为服务器的ipv4地址,复制的文件名可自定义)
(Local):~/.ssh $ scp id_rsa.pub username@ip:~/.ssh/pub_key.pub Are you sure you want to continue connecting (yes/no)? $ yes chenghua@172.18.167.16's password: *********** id_rsa.pub 100%
-
ssh登录远程服务器后,将公钥添加入authorized_keys(若不存在则新建)(touch命令,如其名,存在则无操作,不存在则新建文件)
(Server):~ $ chmod 700 ~/.ssh (Server):~ $ cd .ssh (Server):~/.ssh $ touch authorized_keys # 设置authorized_keys权限(否则,会使得其他终端连接此机器时,无法免密登录) (Server):~/.ssh $ chmod 700 authorized_keys (Server):~/.ssh $ cat id_rsa.pub >> authorized_keys
-
登出远程服务器,本地测试是否免密
(Server):~/.ssh $ exit (Local):~ $ ssh username@ip Login Successfully.
本文来自博客园,作者:呈華,转载请注明原文链接:https://www.cnblogs.com/Tsingwaa/articles/16253935.html