何为密钥登录 ?
SHH 密钥对通过加密算法生成一对密钥,默认采用 RSA 2048 位的加密方式,生成的密钥是一个对外界公开,称为公钥,另一个用户自己保留,称为私钥,这种方式可使服务器的登录认证更加安全可靠。
简单讲类似于门锁的结构,但这把门锁有其唯一性,服务器使用密钥登录,没有私钥任何人都无法直接登录,可以杜绝暴力破解威胁
常用参数 | 说明 |
---|---|
-t | 指定生成密钥的类型,RSA和DSA(默认使用RSA算法 ) 算法有rsa1”(SSH-1) “rsa”(SSH-2) “dsa”(SSH-2) |
-f | 指定生成密钥的文件名,默认id_rsa(私钥id_rsa,公钥id_rsa.pub) |
-P | 提供旧密码,空表示不需要密码(-P ‘’) |
-N | 提供旧密码,空表示不需要密码(-P ‘’) |
-b | 指定密钥长度(bits),RSA最小要求768位,默认是2048位;DSA密钥必须是1024位(FIPS 1862标准规定) |
-C | 提供一个新注释 |
-R | hostname:从known_hosta(第一次连接时就会在家目录.ssh目录下生产该密钥文件)文件中删除所有属于hostname的密钥 |
生成密钥对并使用密钥认证登录
在Linux服务器上的 .ssh目录下 (.ssh文件夹为隐藏文件夹 ll -a 可查看)
#生成一个rsa算法加密的 2048位的密钥对
ssh-keygen -t rsa -b 2048
如不需要指定密码,直接按三次确认即可
.ssh目录下会有一个 authorized_keys文件,没有自己创建即可
下载私钥到自己电脑上!!!!
下载私钥到自己电脑上!!!!
下载私钥到自己电脑上!!!!
#将生成的公钥复制到该文件下
cat id_rsa.pub >> authorized_keys
#为文件和文件夹设置权限,部分权限不足可致无法登录
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
ssh服务端配置sshd_config
vim /etc/ssh/sshd_config
#禁用SSH密码验证
PasswordAuthentication no
#是否允许公钥认证。仅可以用于SSH-2。默认值为"yes"。
PubkeyAuthentication yes
在自己的Linux远程服务端选择密钥连接。选择私钥即可
==需保证创建密钥对和登录是同一个用户,不同用户将公钥复制到该用户的.ssh文件夹下的authorized_keys 即可 ==