设置SSH别名免密登录服务器

最原始的SSH登录服务器的方式如下:

(Local):~ $ ssh username@ip
username@ip's password: $ *******
Login successfully.

SSH密钥登录安全性非常高。
别名登录将每个服务器的登录信息记录在配置文件config中,使得只需要输入别名即可登录。
为简化登录流程,采取别名+免密配置,在本地主机上生成了私钥与公钥后,再将公钥复制到多个服务器中,每个服务器将公钥加入授权密钥,则可实现免密登录多个服务器。

一、设置别名

为了偷懒[狗头]
用一个别名来替代 'username@ip'

  1. 打开ssh配置文件~/.ssh/config
  • windows: 文本文档打开or 终端 notepad ~/.ssh/config
  • mac/linux: vim ~/.ssh/config
  1. 修改ssh配置文件
    Host Nickname  # 别名
    HostName ip  # ip或网址,指向服务器
    Port 22  # 默认22
    User username  # 设置用户名
    

二、免密登录(密钥登录)

密钥登录指的是,

  1. 生成密钥对

    (Local):~ $ cd ~/.ssh
    (Local):~/.ssh $ ssh-keygen -b 4096 -t rsa -C  custom_comment
    

修改custom_comment为自己定义,会显示在公钥中。
值得注意的是,私钥只有一个,所以以上操作会覆盖原有的公私钥。

  1. 将生成的公钥(*.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%
    
  2. 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
    
  3. 登出远程服务器,本地测试是否免密

    (Server):~/.ssh $ exit
    (Local):~ $ ssh username@ip
    Login Successfully.
    
posted @ 2022-05-10 16:18  呈華  阅读(336)  评论(0编辑  收藏  举报