openssh-server

1.openssh-server

功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell

2.客户端连接方式

ssh 远程主机用户@远程主机ip [root@desktop0 ~]# ssh root@172.25.0.11 The authenticity of host '172.25.0.11 (172.25.0.11)' can't be established. ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08. Are you sure you want to continue connecting (yes/no)? yes ##连接陌生主机时需要建立认证关系 Warning: Permanently added '172.25.0.11' (ECDSA) to the list of known hosts. root@172.25.0.11's password: ##远程用户密码 Last login: Mon Oct 3 03:13:47 2016 [root@server0 ~]# ##登陆成功 [root@server0 ~]#touch file [root@server0 ~]#gedit file2 报错 可以在server虚拟机桌面下touch file,发现可以建立。但是gedit file2时发现报错。

ssh 远程主机用户@远程主机ip -X ##调用远程主机图形工具 ssh 远程主机用户@远程主机ip command ##直接在远程主机运行某条命令

练习:

1.ssh root@172.25.77.88 ##在desktop虚拟机(IP:172.25.77.11)上进入server虚拟机(IP:172.25.77.88) [root@server0 ~]# ##登陆成功 [root@server0 ~]#touch file [root@server0 ~]#gedit file2 报错 可以在server虚拟机桌面下touch file,发现可以建立。但是gedit file2时发现报错。 [root@server0 ~]#exit

2.ssh root@172.25.77.88 -X ##就可以gedit了

3.ssh root@172.25.77.88 date ##在desktop虚拟机(IP:172.25.77.11)上显示server虚拟机(IP:172.25.77.88)的时间

4.ssh root@172.25.77.88 rm -fr /root/Desktop/ * ##在desktop虚拟机(IP:172.25.77.11)上删除server虚拟机(IP:172.25.77.88)/root/Desktop 里的文件和目录

3.sshkey加密

1.在server虚拟机生成锁和钥匙 [root@server0 ~]# ssh-keygen ##生成公钥私钥工具 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):[enter] ##加密字符保存文件(建议用默认) Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): [enter] ##密钥密码,必须>4个字符 Enter same passphrase again: [enter] ##确认密码 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: ab:3c:73:2e:c8:0b:75:c8:39:3a:46:a2:22:34:84:81 root@server0.example.com The key's randomart image is: +--[ RSA 2048]----+ |o | |E. | |.. | |. . o | |.o. * . S | |oo.o o . | |+ =. . . | |o. oo.+.. | | ..o*. | +-----------------+ [root@server0 ~]# ls /root/.ssh/ id_rsa id_rsa.pub id_rsa ##私钥,就是钥匙 id_rsa.pub ##公钥,就是锁

2.给server虚拟机上锁 [root@server0 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.0.11 3.把钥匙给desktop虚拟机的root用户 [root@server0 ~]# scp /root/.ssh/id_rsa root@172.25.0.10:/root/.ssh/

4.测试 另外一台虚拟机的有钥匙的root用户,以root身份登陆上锁虚拟机不需要密码 [root@desktop0 ~]# ssh root@172.25.77.88 ##通过id_rsa直接连接不需要输入用户密码 Last login: Mon Oct 3 03:58:10 2016 from 172.25.0.250 [root@server0 ~]# 另一台虚拟机的无钥匙的student用户,以root的身份登陆上锁的虚拟机也是需要密码的

4.提升openssh的安全级别

1.openssh-server配置文件 /etc/ssh/sshd_config 78 PasswordAuthentication yes|no ##是否开启用户密码认证,yes为支持no为关闭 48 PermitRootLogin yes|no ##是否允许超级用户登陆 49 AllowUsers student westos ##用户白名单,只有在名单中出现的用户可以使用sshd建立shell 50 DenyUsers westos ##用户黑名单

练习:

在server虚拟机上 vim /etc/ssh/sshd_config 78 PasswordAuthentication no ##关闭用户密码认证 systemctl restart sshd.service ##重启sshd服务 在Desktop虚拟机上以student身份(因为student身份是无钥匙的) su - student ssh root@172.25.77.88 会显示Permission denied,因为Desktop虚拟机上student身份无钥匙,并且server虚拟机关闭了用户密码认证。

在server虚拟机上 vim /etc/ssh/sshd_config 48 PermitRootLogin no ##不允许超级用户登陆 78 PasswordAuthentication yes ##开启用户密码认证 systemctl restart sshd.service ##重启sshd服务 在Desktop虚拟机上以student身份(因为student身份是无钥匙的) su - student ssh root@172.25.77.88 会让你输root密码 然后会显示Permission denied,因为不允许server虚拟机的用户以超户的身份登陆Desktop虚拟机

如果既不允许超级用户登陆又关闭用户密码认证,不会让你输入密码, 直接显示Permission denied,看不出效果。 78 PasswordAuthentication no ##关闭用户密码认证 48 PermitRootLogin no ##不允许超级用户登陆

2.控制ssh客户端访问

vim /etc/hosts.deny sshd:ALL ##拒绝所有人链接sshd服务

vim /etc/hosts.allow sshd:172.25.254.250 ##允许250主机链接sshd

sshd:172.25.254.250, 172.25.254.180 ##允许250和180链接

sshd:ALL EXCEPT 172.25.254.200 ##只不允许200链接sshd

3.ssh登陆提示修改该 vim /etc/motd ##显示登陆后字符

hello world ##在登陆后就会显示这个字符

小知识点

清空.ssh/目录下的内容的两种方法: 1.cd /root/.ssh rm -fr * 2.>/root/.ssh/* 登陆对方主机的两个方式: 1.密码 2.免密登陆,需要有钥匙。