SSH远程管理
ssh是一种安全通道协议,主要用于实现远程字符界面的远程登陆,远程复制等功能
ssh服务的默认配置文件位于/etc/ssh/sshd_config目录下。默认端口22
#LoginGraceTime0 2m //登陆时间为两分钟
#PermitRootLogin yes //允许root用户
#StrictModes yes
#MaxAuthTries 6 //最大重试次为6
#MaxSessions 10
登陆方式验证
ssh服务支持两种方式验证,密码验证、密钥对验证
1、密钥对验证
公钥私钥是成对产生的这两个密钥互相不同,但可以加密和解密
不能根据一个密钥来推荐另一个密钥
公钥对外公开,私钥只有私钥持有人才知道
通常在客户机中创建一对密钥文件(公钥、私钥),然后将公钥文件放到指定位置
[root@localhost ~]# vim /etc/ssh/sshd_config //进入配置文件
登陆方式验证
ssh服务支持两种方式验证,密码验证、密钥对验证
1、密钥对验证
公钥私钥是成对产生的这两个密钥互相不同,但可以加密和解密
不能根据一个密钥来推荐另一个密钥
公钥对外公开,私钥只有私钥持有人才知道
通常在客户机中创建一对密钥文件(公钥、私钥),然后将公钥文件放到指定位置
实验需要准备两台虚拟机分别为客户机(192.168.220.129) 服务器 (192.168.220.128)
我们首先把客户机中的,密钥对打开
```bash
[root@localhost ~]# vim /etc/ssh/sshd_config //进入配置文件
PubkeyAuthentication yes //开器密钥
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
在客户机中配置
angsan@localhost ~]$ ssh-keygen -t rsa //生成密钥
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/zhangsan/.ssh/id_rsau): 123456
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in 123456.
Your public key has been saved in 123456.pub.
The key fingerprint is:
SHA256:1G7+yatWg6UrAHqezIRygfqV1TD551aVAf16Oa3BJdk zhangsan@localhost.localdomain
The key's randomart image is:
+---[ECDSA 256]---+
| . .o.o |
| + . + |
| . =. . . + |
|. . . ..o.. o o E|
|. + + Soo= . +o|
|o + = . o= o +oo|
| + B . . ..o . +.|
| . = . oo .. |
| o..=. |
+----[SHA256]-----+
将密钥推给服务器
[zhangsan@localhost ~]$ cd .ssh/
[zhangsan@localhost .ssh]$ ls
id_rsa id_rsa.pub
[zhangsan@localhost .ssh]$ ssh-copy-id -i id_rsa.pub lisi@192.168.220.128 \\将密钥发给服务器
我们可以到服务器看有没有 .ssh
root@localhost lisi]# ls -a
. .bash_history .bash_profile .cache .mozilla
.. .bash_logout .bashrc .config .ssh
此时我们可以试着去登陆服务器
zhangsan@localhost .ssh]$ whoami //当前所在位置
zhangsan
[zhangsan@localhost .ssh]$ ssh lisi@192
ssh: connect to host 192 port 22: Invalid argument
[zhangsan@localhost .ssh]$ ssh lisi@192.168.220.128 //登陆服务器
Enter passphrase for key '/home/zhangsan/.ssh/id_rsa':
Last login: Mon Dec 2 09:46:20 2019
[lisi@localhost ~]$
我们可以登陆服务器当然每次登陆都需要密码我们可以用设置一下以后登陆无需密码
[zhangsan@localhost .ssh]$ ssh-agent bash //代理bash环境
[zhangsan@localhost .ssh]$ ssh-add //输入代理密钥密码
Enter passphrase for /home/zhangsan/.ssh/id_rsa:
Identity added: /home/zhangsan/.ssh/id_rsa (/home/zhangsan/.ssh/id_rsa)
备注:这种方法很方便,但是不安全如果你的电脑是公共电脑不建议你用这种方法
密码验证
以服务器本地系统用户登陆名称、密码进行验证。
[root@localhost ~]# vim /etc/ssh/sshd_config
[root@localhost ~]# systemctl restart sshd
[root@localhost ~]# ssh lisi@192.168.220.128
lisi@192.168.220.128's password:
Last login: Mon Dec 2 11:01:58 2019 from 192.168.220.129
[lisi@localhost ~]$
scp远程复制
通过scp命令可以利用ssh安全连接与远程主机相互复制。使用scp命令时除了必须指定复制源、目标外,还应指定目标主机、登陆用户,执行后提示验证口令即可
把本地文件复制到另一台主机上
scp aaa.txt root@192.168.220.129:/opt/aaa.txt
root@192.168.220.129's password:
aaa.txt
把另一台主机上的文件复制到本地
root@localhost opt]# scp root@192.168.220.128:/opt/aaa.txt /opt/cs.txt
root@192.168.220.128's password:
aaa.txt 100% 9 8.6KB/s 00:00
[root@localhost opt]# ls
a.txt cs.txt john-1.8.0 rh
[root@localhost opt]# cat cs.txt
holle cs