SSH证书登录操作实战

准备工作:
系统:Ubuntu 14.04 客户端IP: 192.168.138.140 服务端IP:192.168.138.141

证书登录的步骤
  1. 客户端生成证书:私钥和公钥,然后将私钥放在客户端,为防止私钥被拷贝,建议生成私钥时设置密码
  2. 服务器添加公钥,把客户端生成的公钥,上传到ssh服务器,配置ssh
  3. 客户端通过自己的私钥登录服务器

一、检查是否安装ssh,如果没有安装请执行sudo apt-get install openssh-server
root@cloud:~# ps -aux | grep ssh
root       980  0.0  1.0  61372  5000 ?        Ss   Jul22   0:01 /usr/sbin/sshd -D
root      4648  0.0  1.3 107732  6728 ?        Ss   08:37   0:00 sshd: root@pts/0    
root      5053  0.0  1.3 107732  6640 ?        Ss   09:19   0:00 sshd: root@pts/1    
root      5485  0.0  0.4  11752  2288 pts/1    S+   10:01   0:00 grep --color=auto ssh
root@cloud:~#
二、root用户ssh登录
  1. 客户端(192.168.138.140)生成密钥
root@cloud:~# ssh-keygen -t rsa
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:
1e:ca:29:47:0c:ba:1c:2c:84:64:35:9a:39:bb:68:8e root@cloud
The key's randomart image is:
+--[ RSA 2048]----+
| o.o             |
|+ + .            |
|.*  .            |
|..o. o           |
|..+   o S        |
|.o.o o + .       |
|.oo . = .        |
|+    o           |
|E.               |
+-----------------+
root@cloud:~# ll
total 28
drwx------  4 root root 4096 Jul 23 09:02 ./
drwxr-xr-x 23 root root 4096 Dec 21  2015 ../
-rw-------  1 root root  817 Dec 28  2015 .bash_history
-rw-r--r--  1 root root 3106 Feb 20  2014 .bashrc
drwx------  2 root root 4096 Dec 21  2015 .cache/
-rw-r--r--  1 root root  140 Feb 20  2014 .profile
drwx------  2 root root 4096 Jul 23 09:02 .ssh/
2.将客户端的公钥(id_rsa.pub)拷贝到服务端的/root/secret目录下
如果你有两台服务器的密码时,可进行如下拷贝操作

root@cloud:~# scp .ssh/id_rsa.pub root@192.168.138.141:/root/secret
root@192.168.138.141's password: 
id_rsa.pub                                                 100%  392     0.4KB/s   00:00    
root@cloud:~#
3.服务端(192.168.138.141),如果没有.ssh目录的话,先创建并配置ssh

注意,.ssh目录和authorized_keys文件的权限,权限不对时登录不了ssh服务器
root@cloud:~# mkdir -p .ssh
root@cloud:~# chmod 700 .ssh                    //.ssh目录的权限是700
root@cloud:~# cd .ssh
root@cloud:~/.ssh# touch authorized_keys
root@cloud:~/.ssh# chmod 644 authorized_keys    //该文件权限应该是644
root@cloud:~/.ssh# cd ..
root@cloud:~# vim /etc/ssh/sshd_config 

PubkeyAuthentication yes                        //是否允许使用密钥登录
AuthorizedKeysFile      %h/.ssh/authorized_keys //去掉前面的#,验证的公钥存放文件
root@cloud:~# cat ~/secret/id_rsa.pub >> ~/.ssh/authorized_keys
root@cloud:~# /etc/init.d/ssh restart
4.客户端登录到服务器

root@cloud:~# ssh -i ~/.ssh/id_rsa root@192.168.138.141
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-25-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Sat Jul 23 09:07:43 CST 2016

  System load:  0.0               Processes:           112
  Usage of /:   15.5% of 8.50GB   Users logged in:     1
  Memory usage: 24%               IP address for eth0: 192.168.138.141
  Swap usage:   0%


Last login: Sat Jul 23 08:37:57 2016 from 60.194.192.5
root@cloud:~#
三、普通用户ssh登录
1.客户端创建用户client及家目录
root@cloud:~# useradd client
root@cloud:~# passwd  client
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@cloud:~# cd /home
root@cloud:/home# ls
blue  sys7i24
root@cloud:/home# mkdir client
root@cloud:/home# chown -R client client/
root@cloud:/home# ls
blue  client  sys7i24
root@cloud:/home# ll
total 20
drwxr-xr-x  5 root    root    4096 Jul 23 16:11 ./
drwxr-xr-x 23 root    root    4096 Dec 21  2015 ../
drwxr-xr-x  3 blue    root    4096 Jul 23 15:11 blue/
drwxr-xr-x  2 client  root    4096 Jul 23 16:11 client/
drwxr-xr-x  3 sys7i24 sys7i24 4096 Dec 21  2015 sys7i24/
root@cloud:/home# su client
client@cloud:/home$ cd ~
client@cloud:~$ pwd
/home/client
2.服务端创建用户server及家目录
root@cloud:/home# mkdir server
root@cloud:/home# chown -R server server/
root@cloud:/home# cd server/
3.客户端创建密钥,并将公钥拷贝到服务端
client@cloud:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/client/.ssh/id_rsa): 
Created directory '/home/client/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/client/.ssh/id_rsa.
Your public key has been saved in /home/client/.ssh/id_rsa.pub.
The key fingerprint is:
b9:fc:c1:87:ad:32:5e:76:f2:1e:b3:e7:6e:c9:59:2a client@cloud
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|         .       |
|        S        |
|       . o o    .|
|        o B *. = |
|        o+ BE+B  |
|       ..oo.+*o  |
+-----------------+
client@cloud:~$ ls
client@cloud:~$ scp ~/.ssh/id_rsa.pub server@192.168.138.141:~
The authenticity of host '192.168.138.141 (192.168.138.141)' can't be established.
ECDSA key fingerprint is 98:20:ad:8d:58:e8:67:5c:c0:f7:e8:e7:a7:95:eb:31.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.138.141' (ECDSA) to the list of known hosts.
Permission denied, please try again.
server@192.168.138.141's password: 
id_rsa.pub                                                 100%  394     0.4KB/s   00:00    
client@cloud:~$  ls
4.服务端ssh配置

root@cloud:/home/server# ls
id_rsa.pub
root@cloud:/home/server# su server
server@cloud:~$ pwd
/home/server
server@cloud:~$ mkdir .ssh
server@cloud:~$ chmod 700 .ssh
server@cloud:~$ ls
id_rsa.pub
server@cloud:~$ cat id_rsa.pub >> .ssh/authorized_keys
server@cloud:~$ chmod 644 .ssh/authorized_keys 
server@cloud:~$ vim /etc/ssh/sshd_config 
PubkeyAuthentication yes                        //是否允许使用密钥登录
AuthorizedKeysFile      %h/.ssh/authorized_keys //去掉前面的#,验证的公钥存放文件
root@cloud:~# /etc/init.d/ssh restart
5.客户端通过ssh证书连接服务端
client@cloud:~$ ssh -i ~/.ssh/id_rsa server@192.168.138.141
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-25-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Sat Jul 23 16:19:25 CST 2016

  System load:  0.0               Processes:           115
  Usage of /:   14.6% of 8.50GB   Users logged in:     1
  Memory usage: 23%               IP address for eth0: 192.168.138.141
  Swap usage:   0%

$ ls
id_rsa.pub
$ pwd      
/home/server
$
  • 发布时间:2019-04-05