一 使用ssh
(1)先看看sshd服务有没有开启
systemctl status sshd.service
(2)ssh [email protected](连接远程主机192.168.3.252,以root用户身份登陆)
ssh [email protected] rm -rf /home/kiosk/* (连接主机并执行命令)
(3)scp localfile [email protected]:/root/Desktop (把本地文件拷贝到远程主机的桌面上)
scp -r [email protected]:/root/Desktop/Document/ .(把远程主机的目录拷贝到当前目录)
二 ssh的安全管理
就是对vim /etc/ssh/sshd_config这个文件的修改
(1)服务是开着的,但是别人都登不上。
PasswordAuthentication yes改为no 别人就连不上你的主机了,即使别人知道你的密码也不行
Systemctl reload sshd 重启服务试以下就知道了
(2)是否能以root身份登陆
#PermitRootLogin yes 改为no 就不能以root身份登陆了,但是可以可以以其他用户身份登陆
(3)指定允许登陆本机的人
添加一行alowusers lee 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的密码登陆
[[email protected] .ssh]$ ssh [email protected]
The authenticity of host ‘172.25.1.10 (172.25.1.10)‘ 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.1.10‘ (ECDSA) to the list of known hosts.
[email protected]‘s password: ***
Last login: Mon Oct 13 10:35:34 2014
[[email protected] ~]# (看已经登陆上了)
下面看看C的~/.ssh/下多了什么东西?(known_hosts文件)
[[email protected] .ssh]$ ls -al
total 8
drwxrwxr-x. 2 kiosk kiosk 24 Oct 13 11:11 .
drwx------. 22 kiosk kiosk 4096 Oct 13 10:06 ..
-rw-r--r--. 1 kiosk kiosk 173 Oct 13 11:11 known_hosts
看看konwn_hosts的内容,就是我们刚才登陆过的主机S。所以我们登陆过哪些主机,在这里满都会有记录。
[[email protected] .ssh]$ cat known_hosts
172.25.1.10 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHX+o9KAnlfw2dE7CsmM4hqfv1udM79a5NWC2BuWlmfKSwfYLptPQMJF8bnqaz0EjDlxCxRu/aito+GphPLzp/k=
下次再登陆known_hosts里记录的主机时就会直接让你输入密码,没有那么多罗嗦的信息
[[email protected] .ssh]$ ssh [email protected]
[email protected]‘s password:
Last login: Mon Oct 13 11:11:45 2014 from 172.25.1.250
[[email protected] ~]#
(3)PasswordAuthentication yes改我no
在S端:
vim /etc/ssh/sshd_config
Ststemctl restart sshd.service
密码授权改为no。就是不能通过密码来登陆了。默认会看C的~/.ssh/下有没有证书,如果没有证书就会拒绝C的连接。
在C端:
[[email protected] .ssh]$ ssh [email protected]
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端:
[[email protected] .ssh]$ ssh [email protected] (没有权限)
[email protected]‘s password:
Permission denied, please try again.
[email protected]‘s password:
[[email protected] .ssh]$ ssh [email protected] (可以以普通用户登陆成功)
[email protected]‘s password:
Permission denied, please try again.
[email protected]‘s password:
Last failed login: Mon Oct 13 11:39:21 CST 2014 from 172.25.1.250 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Oct 13 10:24:26 2014
[[email protected] ~]$
(5)S上有很多用户,指定S端的哪些用户可以被远程登陆
添加一行alowusers student bai 随便再哪添加都行。可以以白名单中的人身份student和bai登陆。
在S端:
vim /etc/ssh/sshd_config
Ststemctl restart sshd.service
在C端: (在白名单中的用户可以被远程登陆,其他人不可以)
[[email protected] .ssh]$ ssh [email protected]
[email protected]‘s password:
Permission denied, please try again.
[email protected]‘s password:
[[email protected] .ssh]$ ssh [email protected]
[email protected]‘s password:
Last login: Mon Oct 13 12:00:01 2014 from desktop1.example.com
[[email protected] ~]$
(6)以上都是知道要登陆的用户的密码。这是很不安全的。我们以非对称加密的方式来登陆系统。
在S端:
ssh-keygen 命令来产生公钥和私钥。分别为id_rsa.pub 和id_rsa
用公钥给某个远程登陆加密:ssh-copy-id -i id_rsa.pub [email protected] (必须要有对应的私钥才行)
把私钥发送给你授权远程登陆的人scp id_rsa [email protected]:/home/kiosk/.ssh/
在C端:(有私钥的人才能连接,也就是有id_rsa的人才能连接)
[[email protected] ~]# ssh [email protected]
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[[email protected] ~]# logout
[[email protected] .ssh]$ ssh [email protected]
Enter passphrase for key ‘/home/kiosk/.ssh/id_rsa‘:
Last login: Mon Oct 13 12:29:54 2014 from 172.25.1.250