盒子
盒子
文章目录
  1. 客户端建立私钥和公钥
  2. ssh服务端配置
  3. 客户端通过私钥登录ssh服务器
  4. windows上使用

linux配置证书登陆

客户端建立私钥和公钥

在客户端终端运行命令ssh-keygen -t rsa
密码算法我们选择rsa,还有一种是dsa,证书登录常用的是rsa。
执行 ssh-keygen 时,才会在我的home目录底下的 .ssh/ 这个目录里面产生所需要的两把 Keys ,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)。为了安全我们最好对公钥设置上密码.

ssh服务端配置

ssh服务器配置如下:

vim /etc/ssh/sshd_config

1
2
3
4
5
6
7
8
9
10
11
# 禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入.
StrictModes no
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
#有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no

配置好ssh服务器的配置了,那么我们就要把客户端的公钥上传到服务器端,然后把客户端的公钥添加到authorized_keys

在客户端执行命令
scp ~/.ssh/id_rsa.pub root@<ssh_server_ip>:~
在服务端执行命令
cp id_rsa.pub ~/.ssh/authorized_keys
如果有修改配置/etc/ssh/sshd_config,需要重启ssh服务器
service sshd restart

客户端通过私钥登录ssh服务器

  • ssh命令
    ssh -i ~/.ssh/id_rsa root@<ssh_server_ip>
  • scp命令
    `scp -i ~/.ssh/id_rsa filename root@:/filepath
    每次敲命令,都要指定私钥,是一个很繁琐的事情,所以我们可以把私钥的路径加入ssh客户端的默认配置里
    修改/etc/ssh/ssh_config
    1
    2
    3
    4
    #默认id_rsa就已经加入私钥的路径了
    IdentityFile ~/.ssh/id_rsa
    #如果有其他的私钥,还要再加入其他私钥的路径则在文件里面添加
    IdentityFile ~/.ssh/other_rsa

windows上使用

这里生成的公钥是OpenSSH格式,在window上可以通过小工具puttygen,点击窗口上的’Conversions’->’Import key’ 导入这个公钥,然后再导出成putty支持的证书格式即可使用putty登陆.
putty登陆指定证书方法:先正常填写IP,然后点击左侧的’Connection’->’SSH’->’Auth’,点击’Browse’导入公钥文件即可.
如果你是从windows的puttygen生成的公私钥,一样的需要导出成linux支持的OpenSSH格式.