配置ssh以及ssh的安全管理
一 使用ssh
(1)先看看sshd服务有没有开启
systemctlstatus sshd.service
(2)ssh root@192.168.3.252(连接远程主机192.168.3.252,以root用户身份登陆)
ssh kiosk@192.168.3.252 rm -rf/home/kiosk/* (连接主机并执行命令)
(3)scp localfile root@192.168.3.252:/root/Desktop(把本地文件拷贝到远程主机的桌面上)
scp -r root@192.168.3.252:/root/Desktop/Document/.(把远程主机的目录拷贝到当前目录)
二 ssh的安全管理
就是对vim/etc/ssh/sshd_config这个文件的修改
(1)服务是开着的,但是别人都登不上。
PasswordAuthentication yes改为no 别人就连不上你的主机了,即使别人知道你的密码也不行
Systemctl reload sshd 重启服务试以下就知道了
(2)是否能以root身份登陆
#PermitRootLogin yes 改为no 就不能以root身份登陆了,但是可以可以以其他用户身份登陆
(3)指定允许登陆本机的人
添加一行alowuserslee test 随便再哪添加都行。可以以白名单中的人身份lee和test登陆。
(4)密钥
作为一大块儿来写
三 ssh 密钥
(1)《客户端》主机叫做C,IP是172.25.254.1 正在以kiosk身份登陆。~/.ssh/下空
《服务端》虚拟机叫做S,IP是172.25.1.10 正在以root身份登陆(因为涉及到修改系统配置文件所以要以root身份登陆)。 ~/.ssh/下空。ssh服务已经开启。/etc/ssh/sshd_config是原始配置。
(2)C知道S的密码,S允许C以S的密码登陆
[kiosk@foundation1 .ssh]$ ssh root@172.25.1.10
The authenticity of host '172.25.1.10(172.25.1.10)' can't be established.
ECDSA key fingerprint iseb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continueconnecting (yes/no)? yes
Warning: Permanently added '172.25.1.10'(ECDSA) to the list of known hosts.
root@172.25.1.10's password: ***
Last login: Mon Oct 13 10:35:34 2014
[root@desktop1 ~]# (看已经登陆上了)
下面看看C的~/.ssh/下多了什么东西?(known_hosts文件)
[kiosk@foundation1 .ssh]$ ls -al
total 8
drwxrwxr-x. 2 kiosk kiosk 24 Oct 13 11:11 .
drwx------. 22 kiosk kiosk 4096 Oct 1310:06 ..
-rw-r--r--. 1 kiosk kiosk 173 Oct 13 11:11known_hosts
看看konwn_hosts的内容,就的我们刚才登陆过的主机S。所以我们登陆过哪些主机,在这里满都会有记录。
[kiosk@foundation1 .ssh]$ cat known_hosts
172.25.1.10 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHX+o9KAnlfw2dE7CsmM4hqfv1udM79a5NWC2BuWlmfKSwfYLptPQMJF8bnqaz0EjDlxCxRu/aito+GphPLzp/k=
下次再登陆known_hosts里记录的主机时就会直接让你输入密码,没有那么多罗嗦的信息
[kiosk@foundation1 .ssh]$ sshroot@172.25.1.10
root@172.25.1.10's password:
Last login: Mon Oct 13 11:11:45 2014 from172.25.1.250
[root@desktop1 ~]#
(3)PasswordAuthentication yes改我no
在S端:
vim /etc/ssh/sshd_config
Ststemctl restart sshd.service
密码授权改为no。就是不能通过密码来登陆了。默认会看C的~/.ssh/下有没有证书,如果没有证书就会拒绝C的连接。
在C端:
[kiosk@foundation1 .ssh]$ sshroot@172.25.1.10
Permission denied(publickey,gssapi-keyex,gssapi-with-mic).
(4)PasswordAuthentication yes 且PermitRootLogin 设置为no
在S端:
vim /etc/ssh/sshd_config
Ststemctl restart sshd.service
这样别人就不能登陆S的root用户了
在C端:
[kiosk@foundation1 .ssh]$ ssh root@172.25.1.10 (没有权限)
root@172.25.1.10's password:
Permission denied, please try again.
root@172.25.1.10's password:
[kiosk@foundation1 .ssh]$ ssh student@172.25.1.10 (可以以普通用户登陆成功)
student@172.25.1.10's password:
Permission denied, please try again.
student@172.25.1.10's password:
Last failed login: Mon Oct 13 11:39:21CST 2014 from 172.25.1.250 on ssh:notty
There was 1 failed login attempt sincethe last successful login.
Last login: Mon Oct 13 10:24:26 2014
[student@desktop1 ~]$
(5)S上有很多用户,指定S端的哪些用户可以被远程登陆
添加一行alowusersstudent bai 随便再哪添加都行。可以以白名单中的人身份student和bai登陆。
在S端:
vim /etc/ssh/sshd_config
Ststemctl restart sshd.service
在C端: (在白名单中的用户可以被远程登陆,其他人不可以)
[kiosk@foundation1 .ssh]$ sshxue@172.25.1.10
xue@172.25.1.10's password:
Permission denied, please try again.
xue@172.25.1.10's password:
[kiosk@foundation1 .ssh]$ sshbai@172.25.1.10
bai@172.25.1.10's password:
Last login: Mon Oct 13 12:00:01 2014 fromdesktop1.example.com
[bai@desktop1 ~]$
(6)以上都是知道要登陆的用户的密码。这是很不安全的。我们以非对称加密的方式来登陆系统。
在S端:
ssh-keygen 命令来产生公钥和私钥。分别为id_rsa.pub 和id_rsa
用公钥给某个远程登陆加密:ssh-copy-id -i id_rsa.pub student@172.25.1.10 (必须要有对应的私钥才行)
把私钥发送给你授权远程登陆的人scp id_rsa kiosk@172.25.254.1:/home/kiosk/.ssh/
在C端:(有私钥的人才能连接,也就是有id_rsa的人才能连接)
[root@foundation1 ~]# sshstudent@172.25.1.10
Permission denied(publickey,gssapi-keyex,gssapi-with-mic).
[root@foundation1 ~]# logout
[kiosk@foundation1 .ssh]$ sshstudent@172.25.1.10
Enter passphrase for key'/home/kiosk/.ssh/id_rsa':
Last login: Mon Oct 13 12:29:54 2014 from172.25.1.250
[student@desktop1 ~]$