linux 密钥登录


何为密钥登录 ?

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提供一个新注释
-Rhostname:从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 即可 ==

参考文章
ssh-keygen常用参数详解
ssh密钥登录linux


  目录