当前位置:   article > 正文

ssh命令,key认证_ssh命令指定key

ssh命令指定key
1.sshd简介
当主机中开启openssh服务,那么就对外开放了远程连接的接口 openssh服务的服务端,开元的远程连接 
	
sshd= secure shell    # 服务端软件,对外开放一个接口,让别人通过其他途径连接可以通过网络在主机中开机shell的服务 
ssh                   # 客户端软件
  • 1
  • 2
  • 3
  • 4

(1)连接方式:
	
ssh    username@ip	  # 文本模式的连接
ssh -X username@ip	  # 可以在连接成功后开机图形 

注意:第一次链接陌生主机是要建立认证文件,所以会询问是否建立,需要输入yes,再次链接此台
主机时,因为已经生成~/.ssh/know_hosts文件所以不需要再次输入yes
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

(2)远程复制:	

scp file root@ip:dir		 # 上传	
scp root@ip:file dir		 # 下载
  • 1
  • 2
  • 3
  • 4
2.sshd 的key认证
# 在服务端

(1)生成认证KEY

a.命令的方式生成密钥
[root@desktop ~]# ssh-keygen     # 生成密钥,生成密钥时,均选用默认值
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

b.用一条命令生成密钥
[root@desktop ~]# rm -fr /root/.ssh/id_rsa    # 先要删除之前生成的密钥
[root@desktop ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ""       
	 -t                   # type,即锁的类型  
	 -f                   # 生成所的位置以及文件名称
	 -P                   # 密码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

c.用脚本文件生成密钥
[root@desktop ~]# rm -fr /root/.ssh/id_rsa   #先要删除之前生成的密钥
[root@desktop ~]# vim create_keys.sh			
  • 1
  • 2
  • 3

在这里插入图片描述

# 如果不删除的话就会出现以下现象	
  • 1

在这里插入图片描述

(2)加密服务

[root@desktop ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.138   # 加密
	-id	                        # 加密命令
	 -i	                        # 指定密钥, 即加密的文件
	/root/.ssh/id_rsa.pub	    # 公钥,就是锁 
	/root/.ssh/id_rsa           # 私钥,就是钥匙
	root	                    # 加密用户 
	172.25.254.138	            # 主机ip
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

[root@desktop ~]# ls /root/.ssh/    # authorized_keys文件出现表示加密成功
	authorized_keys  id_rsa  id_rsa.pub  known_hosts
  • 1
  • 2

(3)分发钥匙,把密钥传给客户端
  • 1

[root@desktop ~]# scp /root/.ssh/id_rsa root@172.25.254.238:/root/.ssh/
  • 1

(4)测试
  • 1

# 在客户端

[root@server ~]# ssh root@172.25.254.138    # 连接服务端时不需要输入密码
	Last login: Thu Oct  4 11:10:06 2018 from 172.25.254.78
[root@desktop ~]# 

# 在客户端删除钥匙,不能免密连接
[root@server ~]# rm -fr /root/.ssh/id_rsa
[root@server ~]# ssh root@172.25.254.138root@172.25.254.138's 
password: 

解决方案:重新再传一份钥匙即可

# 在服务端删除加密文件,客户端也不能连接 
[root@desktop ~]# rm -fr /root/.ssh/authorized_keys

[root@server ~]# ssh root@172.25.254.138    # 在客户端连接测试
password:         # 不能免密
解决方案:
[root@desktop ~]# cp /root/.ssh/id_rsa.pub  /root/.ssh/authorized_keys

# 服务端加密文件删除之后,客户端还可以通过密码连接,修改配置文件之后,就没有连接的权限

[root@desktop ~]# rm   -fr   /root/.ssh/authorized_keys
[root@desktop ~]# vim /etc/ssh/sshd_config 
	78 PasswordAuthentication no
[root@desktop ~]# systemctl restart sshd.service 

# 在客户端测试
[root@server ~]# ssh root@172.25.254.142
	Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
	
解决方案:把配置文件内容修改回来即可
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
3.sshd的安全设定(/etc/ssh/sshd_config)
78 PasswordAuthentication yes/no      # 是否允许用户通过登陆系统的密码做sshd的认证
48 PermitRootLogin yes|no	      # 是否允许root用户通过sshd服务的认证
52 Allowusers student westos	      # 设定用户白名单,白名单出现默认不在名单中的用户不能使用sshd
53 Denyusers	westos		      # 设定用户黑名单,黑名单出现默认不在名单中的用户可以使用sshd

注:白名单和黑名单只能出现一个
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

# 在服务端

[root@desktop ~]# vim /etc/ssh/sshd_config
48 PermitRootLogin no
[root@desktop ~]# systemctl restart sshd.service 

#在客户端测试,服务端的root用户不能被连接
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述
在这里插入图片描述

# 在服务端(设置白名单)
[root@desktop ~]# vim /etc/ssh/sshd_config   # 设置白名单为student 
	52 Allowusers student
[root@desktop ~]# systemctl restart sshd.service 

#在客户端测试,只有student用户可以被连接,其他用户不可以
[root@server ~]# ssh westos@172.25.254.138
[root@server ~]# ssh student@172.25.254.138
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

# 在服务端(设置黑名单)
[root@desktop ~]# vim /etc/ssh/sshd_config
	53 Denyusers student
[root@desktop ~]# systemctl restart sshd.service 

#在客户端测试,只有student用户不可以被连接,其他用户都可以
[root@server ~]# ssh student@172.25.254.138
[root@server ~]# ssh westos@172.25.254.138	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

4.添加sshd登陆登陆信息
# 在服务端设置登录信息
[root@desktop ~]# vim /etc/motd  # 文件内容就是登陆后显示的信息
  • 1
  • 2

在这里插入图片描述

# 在客户端测试
[root@server ~]# ssh westos@172.25.254.138
  • 1
  • 2

在这里插入图片描述

5.用户的登陆审计
(1)w		# 查看正在使用当前系统的用户	
	-f	# 查看使用来源	
	-i	# 显示IP		
  • 1
  • 2
  • 3

在这里插入图片描述

/var/run/utmp     # 记录着当前登录的用户,清空文件就不会用w查看到
  • 1

[root@desktop ~]# > /var/run/utmp
[root@desktop ~]# w
 22:37:57 up  1:30,  0 users,  load average: 0.00, 0.01, 0.05
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
  • 1
  • 2
  • 3
  • 4

(2)last		 # 查看使用过并退出的用户信息	
  • 1

在这里插入图片描述

/var/log/wtmp             # 记录所有的登入和登出的用户,清空文件后,用last查看不到
  • 1

[root@desktop ~]# > /var/log/wtmp     
[root@desktop ~]# last

wtmp begins Fri Oct 12 22:39:23 2018
  • 1
  • 2
  • 3
  • 4

(3)lastb		 # 试图登陆但没成功的用户
  • 1

在这里插入图片描述

/var/log/btmp                                  #  记录错误的尝试登陆,清空文件后lastb就不会查到
  • 1

[root@desktop ~]# > /var/log/btmp
[root@desktop ~]# lastb

btmp begins Fri Oct 12 22:39:02 2018
  • 1
  • 2
  • 3
  • 4
6.ssh的排错
加密完之后,私钥和公钥不能配合使用,是因为当前shell出了问题

解决方案:
1.关闭当前shell,重新打开一个shell
2.ssh-agent   bash   
3.ssh-add    id_rsa   # 把私钥添加到当前shell中
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
7.练习
题目:复制172.25.254.100上/mnt目录下的ip_rsa文件,使得这台主机连接我的student用户是免密连接

[root@desktop ~]# scp root@172.25.254.100:/mnt/id_*  /root/.ssh
[root@desktop ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub student@172.25.254.142 	
  • 1
  • 2
  • 3
  • 4

测试:(用172.25.254.100这台主机连接我的student用户)如果是免密,则成功 
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/695293
推荐阅读
相关标签
  

闽ICP备14008679号