su 切换到需要设置密钥登陆的用户
su usertest
2. 使用ssh-keygen命令创建密钥对
ssh-keygen -t rsa -b 4096 -C "name@***.com"
–t type
指定用于生成密钥的算法,其中 type 是 rsa、dsa 和 rsa1 中的一种。rsa1 类型仅用于 SSHv1 协议。
–b bits
指定要创建的密钥的位数。最小位数为 512 位。通常,2048 位足以满足安全需要。密钥大小超过该值并不会提高安全性,反而会降低速度。缺省值为 2048 位。
3. 强烈建议使⽤默认路径来保存公钥与密钥⽂件,所以,当提⽰您"Enter a file in which to save the key”时,点击Enter键即可。
Enter file in which to save the key (~/.ssh/id_rsa): [Press enter]
4. 您会被要求输⼊⼀个密码,非必须,您可以不输⼊。直接点击Enter键继续。
Enter passphrase (empty for no passphrase): [Type a passphrase] Enter same passphrase again: [Type passphrase again]
5. 接下来控制台会打印⼀些验证信息,类似这个样⼦:
+---[RSA 4096]----+ | .o o | | o.+.* | | o oo+ . | | . .. | | E.. .S | |.++*o=o. | |++BBB+ | |.*B=*.. | |o*B+ o.. | +----[SHA256]-----+
此时 在 ~/.ssh/目录下会多出来id_rsa(私钥,自己保存起来,不能外泄)和id_rsa.pub(公钥)两个文件
6. 保存配置的私钥到本机
#sz命令需要安装lrzsz,或者用ftp以及一些其他工具来保存 sz ~/.ssh/id_rsa
7. 将id_rsa的内容复制到 authorized_keys文件中,并把权限改为600
cd ~/.ssh cat id_rsa.pub >> authorized_keys #为保证连接成功修改下文件权限 chmod 600 authorized_keys chmod 700 ~/.ssh
8. 修改/etc/ssh/sshd_config配制文件
需要切换到root用户下来修改
#给自己写入的权限 chmod +w /etc/ssh/sshd_config
修改前一定多打开几个root账户的对话, 以防修改错误自己登不上去.
或者把配置中的 PermitRootLogin yes 打开,允许以root登录,记住修改成功一定要把该项改成 no .
把sshd_config文件中的配置改成如下
# 打开秘钥登录 PubkeyAuthentication yes #禁止密码登录(最好是尝试证书链接成功了再修改) PasswordAuthentication no ChallengeResponseAuthentication no
8. 修改完成保证可以正常连接了,需要把/etc/ssh/sshd_config 文件改成
chmod 600 /etc/ssh/sshd_config
9. 重启sshd服务
systemctl restart sshd
如果你创建密钥对的时候输入了密码,那么使用xshell等等方式登录的时候,会让你输入下秘钥的密码.
补充: 2020-11-07
配置快捷登录
每次登陆都需要指定host,port,user等信息,太麻烦了!! 我们可以配置ssh快捷登录更方便的登录Linux.
在本地 ~/.ssh/config 配置文件中添加ssh服务器信息,格式:
Host abc #自定义别名 HostName 192.168.1.52 #替换为你的ssh服务器ip或domain Port 5654 #ssh服务器端口,默认为22 User hahaha #ssh服务器用户名 IdentityFile ~/.ssh/id_rsa #对应的私钥文件 #ssh本地端口转发 #将远程服务器上的 3388端口绑定到本地的10.0.0.1:3306 LocalForward 10.0.0.1:3306 127.0.0.1:3388 #ssh远程端口转发 #将本地的10.0.0.1:1081端口绑定到远程服务器127.0.0.1:1081 RemoteForward 127.0.0.1:1081 10.0.0.1:1081
这时候就可以使用配置文件中自定义的别名来登录了:
ssh abc
这样就可以登陆了!! 方便快捷!
更改参数参考: man ssh_config 5
还没有评论,来说两句吧...