Centos SSH PublicKey证书登录
PublicKey相对于密码登录更安全。
PublicKey认证的基础在于一对密钥,public key和private key,public key对数据进行加密而且只能用于加密,private key 只能对所匹配的public key加密过的数据进行解密。
.ssh目录
在登录账号的目录下面新建.ssh目录,例如登录账号是test,就在/home/test目录下面新建并修改目录权限:
mkdir .ssh
chmod 700 .ssh
生成密钥
进入.ssh目录,使用ssh-keygen命令生成密钥:
ssh-keygen -t rsa -b 4096
需要输入密钥文件名和密钥的密码,密钥文件名默认回车即可:
Generating public/private rsa key pair. Enter file in which to save the key (/home/test/.ssh/id_rsa): //回车即可 Enter passphrase (empty for no passphrase): //密钥文件的密码 Enter same passphrase again: //密码确认
执行完毕之后,可以看到两个文件id_rsa.pub和id_rsa,重命名id_rsa.pub
mv id_rsa.pub authorized_keys
chmod 600 authorized_keys
把id_rsa文件下载到本地,之后就可以使用这个文件登录。
sshd_config
修改/etc/ssh/sshd_config
文件的配置:
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
X11Forwarding no
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin 使用root账号登录
PubkeyAuthentication pubkey登录
PasswordAuthentication 密码登录
X11Forwarding 如果不使用图形界面,可以把这个禁掉
AuthorizedKeysFile 就是开始生成的密钥文件路径,一般不用修改
保存修改之后,就可以重启sshd:
systemctl restart sshd
id_rsa
打开远程连接的客户端,比如这里使用的是xshell,配置publiekey登录,把下载到本地的id_rsa文件导入即可,导入时需要输入密钥文件的密码:
0