生成ssh-key
ssh-key
ssh-keygen ssh-keyscan
[root@172-20-58-183 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Ej95I9+ni7o4bMMu0zRvNXkQ3jl9iRp34PNtNAEQn7k root@172-20-58-183
The key's randomart image is:
+---[RSA 2048]----+
| oo.. |
| . ..o. |
| . . o.*o o|
| o .o.+=o+o|
| . S oo+E+oo|
| o. =++. .o|
| = o ..o. .. |
| o B.o . o |
| =o+oo. o. |
+----[SHA256]-----+
会在 ~.ssh 下生成 id_rsa, id_rsa.pub 两个文件,分别是 私钥/公钥。
生成authorized_keys
公钥需保存到远程服务器 ~/.ssh/authorized_keys 里,私钥由客户端本地留存。 要保证 .ssh 和 authorized_keys 都只有用户自己有写权限。否则验证无效。
cat .ssh/id_rsa.pub > .ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
测试key是否可以登录
ssh -i Desktop/id_rsa [email protected]
ssh禁止密码登录
$ vim /etc/ssh/sshd_config
# 禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。例如使用者的 ~/.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
PubkeyAuthentication yes
# 有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no