通过sftp命令可以利用SSH安全连接与远程主机上传、下载文件,采用了与FTP类似的登录过程和交互式环境,便于目录资源管理。
[root@kehuduan ~]# sftp root@192.168.1.1
root@192.168.1.1's password:
Connected to 192.168.1.1.
sftp> put 456.txt
//上传文件
Uploading 456.txt to /root/456.txt
456.txt
100% 0
0.0KB/s 00:00
sftp> get /root/789.txt
//下载文件
Fetching /root/789.txt to 789.txt
sftp> bye
2.图形化工具
在Windows主机上可以使用一些列图形化工具Xshell、SecureCRT、Putty等图形工具,支持Telnet、SSH、SFTP等协议,方便对Linux主机进行远程管理。这些图形化工具都提供了中文界面、功能和操作比较简单,这里不再做深入介绍。
三、构建密钥对验证的SSH体系
密钥对验证方式可以为远程登录提供提供更好的安全性,流程图:
1)第一种实现方法:
1.在客户端创建密钥对
在LInux客户端中,通过ssh-keygen工具为当前用户创建密钥对文件,可用的加密算法为ECDSA或DSA(ssh-keygen命令的“-t”选项用于指定算法类型)
root@kehuduan ~]# su - xiaowang
//切换到用户xioawang
[xiaowang@kehuduan ~]$ ssh-keygen -t ecdsa
//创建基于ECDSA算法的SSH密钥对
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/xiaowang/.ssh/id_ecdsa):
//指定私钥存放位置
Created directory '/home/xiaowang/.ssh'.
Enter passphrase (empty for no passphrase):
//设置私钥短语
Enter same passphrase again:
//确认所设置的短语
Your identification has been saved in /home/xiaowang/.ssh/id_ecdsa.
Your public key has been saved in /home/xiaowang/.ssh/id_ecdsa.pub.
The key fingerprint is:
13:c2:03:63:bc:2e:d8:7e:be:f1:1b:1d:95:6b:4c:49 xiaowang@kehuduan
The key's randomart image is:
+--[ECDSA 256]---+
| .+
E
|
| ..+ . o
|
|
.+ . =
|
| . o = .
|
| o . S +
|
|. o . . +
|
| . .. . .
|
| . .o .
|
| oo.o.
|
+-----------------+
[xiaowang@kehuduan ~]$ ls -lh ~/.ssh/id_ecdsa*
-rw-------. 1 xiaowang xiaowang 227 8月 8 16:45 /home/xiaowang/.ssh/id_ecdsa
-rw-r--r--. 1 xiaowang xiaowang 179 8月 8 16:45 /home/xiaowang/.ssh/id_ecdsa.pub
新生成的密钥对文件中,id_ecdsa是私钥文件 ,权限为600,需妥善保管;id_ecdsa.pub是公钥文件,用来提供给SSH服务器。
2.将公钥文件上传至服务器
将刚才生成的公钥文件上传到服务端用户的公钥数据库中。
[xiaowang@kehuduan ~]$ scp ~/.ssh/id_ecdsa.pub root@192.168.1.1:/mnt
root@192.168.1.1's password:
//输入密码
id_ecdsa.pub
100% 179
0.2KB/s 00:00
//上传成功
3.在服务器中导入公钥文本
在服务器中,目标用户(指用阿里远程登录的账号)的公钥数据库位于~/.ssh目录,默认的文件名“authorized_keys”,需要自己手动创建!
[root@fuwuduan ~]# mkdir /home/xiaozhang/.ssh
[root@fuwuduan ~]# cat /mnt/id_ecdsa.pub >> /home/xiaozhang/.ssh/authorized_keys
[root@fuwuduan ~]# cat /home/xiaozhang/.ssh/authorized_keys
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJmtmVbjnjH6NbWBRQcFjbYHoDBILQYclqrIHbVe0oyA15IXd+WBGsOcX3FYX8FYnIPHfL36Auj7aWb2MuVqmac= xiaowang@kehuduan
4.在客户端使用密钥对验证
[xiaowang@kehuduan ~]$ ssh xiaozhang@192.168.1.1
Last login: Thu Aug 8 16:03:33 2019 from 192.168.1.2
//不用输入密码,即可连接,实验完成!
2)第二种实现方法:
[root@kehuduan ~]# ssh-keygen -t ecdsa
//以root为例,生成root用户的密钥对文件
[root@kehuduan ~]# ssh-copy-id -i ~/.ssh/id_ecdsa.pub root@192.168.1.1
//“-i”用来指定公钥文件,这一步把刚才第二、三步结合在一起
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.1.1's password:
//输入服务端root用户密码
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.168.1.1'"
and check to make sure that only the key(s) you wanted were added.
[root@kehuduan ~]# ssh root@192.168.1.1
Last login: Thu Aug 8 17:03:20 2019
//验证实验效果
使用密钥对验证的方式登录时,不需要知道目标用户的面膜,而是验证客户端用户的私钥短语并检查私钥、公钥是否配对,这样安全性更好。
四、TCP Wrappers访问控制
1)TCP Wrappers概述