经常会通过ssh登录远程服务器,一种是通过密码方式登录,一种是通过公钥登录。
如何设置通过公钥登录服务器
1. 先生成公钥和私钥
ssh-keygen 命令用来生成公钥和私钥
-t 用来指定密钥类型(dsa | ecdsa | ed25519 | rsa | rsa1)
-p 用来指定密码短语
-c 用来添加注释
比如
ssh-keygen -t rsa -c "mykey"
此时,会在存放ssh秘钥的地方生成两个文件(不同系统,存放秘钥的地方不同),“.pub”结尾的是公钥,另一个是私钥
2. 第二步,将公钥部署到服务器
公钥需要写入到服务的 ~/.ssh/authorized_key文件中,这里我通过sftp将公钥上传到服务器,然后将文件内容写入到 ~/.ssh/authorized_key文件中
上传公钥到服务器
sftp root@yourhost -p 22
put mykey.pub
将文件写入authorized_keys中
cat mykey.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
3. 设置服务器ssh的可以通过公钥登录
打开/etc/sshd_config文件,修改如下配置
rsaauthentication yes
pubkeyauthentication yes
authorizedkeysfile .ssh/authorized_keys
4. 重启ssh服务,就可以通过公钥登录了