1.简介
SSH是Secure Shell Protocol的缩写,它是一种安全通道协议,主要用来实现安全的远程登录,远程复制等功能,SSH协议对通信双方的数据传输进行加密处理,加密后再对数据传输,确保了传输数据的安全性。
在默认的状态下,SSH服务主要提供两个服务的功能:
- 一: 是提供类似telent远程联机服务器的服务,及SSH服务。
- 二:类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务。
SSH服务默认端口为tcp 22 号端口
2.SSH服务搭建环境介绍
此次服务搭建用到的是linux系统的centos7,SSH服务需要一个客户端和一个服务端构成,具体情况如下:
-
服务器
IP
作用
server
192.168.2.101
服务端
client
192.168.2.10
客户端
- ·服务名称:sshd
- ·服务端主程序:/usr/sbin/sshd
- ·服务端配置文件:/etc/ssh/sshd_config
- ·客户端配置文件:/etc/ssh/ssh_config
3.SSH服务搭建
1.配置SSH服务端
-
进入文件所在目录
[root@server ~]# cd /etc/ssh/
将服务端的配置文件进行备份
[root@server ssh]# cp -r sshd_config sshd_config.bak
-
在服务器配置文件最后一行中填加用户:
-
AllowUsers:用户 amber 在任何(admin)客户端均可登录;用户 hanjaili 只允许在 IP 地址为 192.168.2.101 的客户端登录。且仅允许此用户通过 ssh 协议远程登录
- DenyUsers:禁止用户lisi登录注意:AllowUsers不要与DenyUsers 同时使用
-
[root@ssh-server ssh]# vim sshd_config
AllowUsers amber hanjiali @192.168.2.10
#DenyUsers lisi
-
重新启动服务
-
[root@ssh-server ssh]# systemctl restart sshd
sshd_config 配置文件详解(监听IP换成192.168.2.15)
2.配置SSH客户端
- 创建用户admin,hanjiali并为其设置密码
-
[root@client ~]# useradd admin
[root@client ~]# useradd hanjiali
[root@client ~]# echo "zxc123" |passwd --stdin admin &> /dev/null
[root@client ~]# echo "zxc123" |passwd --stdin hanjiali &> /dev/null
4.验证用户及密码是否能登陆
-
验证是否能登录成功
- ssh命令(远程安全登录)格式:ssh user@host (若客户机与主机用户名相同,可省去user@) 端口选项:-p 22
-
[root@client admin]# su - admin 上一次登录:六 10月 10 15:37:50 CST 2020pts/0 上 [admin@client ~]$ ssh hanjiali@192.168.2.10
-
验证服务端和客户端是否能够互相传递信息
-
scp命令(远程安全复制)格式1:scp user@host:file1 file2 格式2:scp file1 user@host:file2
- 客户端从服务端复制文件
-
服务端创建文件
[root@server ~]# mkdir /Carrie
[root@server ~]# cd /Carrie
[root@server Carrie]# touch hanjiali{0..5}
[root@server Carrie]# ls
hanjiali0 hanjiali1 hanjiali2 hanjiali3 hanjiali4 hanjiali5
客户端创建目录[root@client ~]# mkdir /hanjiali
客户端从服务器中复制文件成功[root@client ~]# scp hanjiali@192.168.2.10:/Carrie/* /hanjiali
The authenticity of host ‘192.168.2.10 (192.168.2.10)‘ can‘t be established.
ECDSA key fingerprint is SHA256:A5nQ3zTujOsKvkf1OMaUzYDwj338rg1umdkOqIlS1BY.
ECDSA key fingerprint is MD5:ba:e8:94:4e:d6:be:7b:68:66:29:34:31:ce:7c:ed:f5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.2.10‘ (ECDSA) to the list of known hosts.
hanjiali@192.168.2.10‘s password:
hanjiali0 100% 0 0.0KB/s 00:00
hanjiali1 100% 0 0.0KB/s 00:00
hanjiali2 100% 0 0.0KB/s 00:00
hanjiali3 100% 0 0.0KB/s 00:00
hanjiali4 100% 0 0.0KB/s 00:00
hanjiali5
- 客户端传信息给服务端
-
[root@client ~]# ls 123.txt anaconda-ks.cfg client.txt han [root@client ~]# scp 123.txt hanjiali@192.168.2.10:/han hanjiali@192.168.2.10‘s password: scp: /han/123.txt: Permission denied [root@client ~]# scp 123.txt hanjiali@192.168.2.10:/han hanjiali@192.168.2.10‘s password: 123.txt 100% 0 0.0KB/s 00:00 [root@server ~]# ls /han 123.txt
5.实现免密码登录
- 1.构建密钥对认证:
-
[admin@client ~]$ ssh-keygen -t rsa
或者ssh-keygen -t rsa -P “zxc123” -f
- 2. 将公钥传给服务器
-
[admin@client ~]$ scp .ssh/id_rsa .ssh/id_rsa.pub hanjiali@192.168.2.10:/Carrie/ hanjiali@192.168.2.10‘s password: id_rsa 100% 1766 927.4KB/s 00:00 id_rsa.pub 100% 394 210.7KB/s 00:00
- 3. 在服务器中导入公钥
-
[root@client ~]# ssh-copy-id -I anjiali@192.168.2.10 /bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/admin/.ssh/id_rsa.pub" /bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed Enter passphrase for key ‘/home/admin/.ssh/id_rsa‘: /bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system. (if you think this is a mistake, you may want to use -f option) [root@server ~]# su - hanjiali 上一次登录:六 10月 10 19:30:36 CST 2020pts/0 上 [hanjiali@server ~]$ ll .ssh/ 总用量 4 -rw------- 1 hanjiali hanjiali 394 10月 10 19:58 authorized_keys [hanjiali@server ~]$ cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTSNm8st2eOTXIPUUTDvnBwUDk/3s1yst/7ocy+HPhqxijOYPwPI3NPMTKXvpDYGQYxRvmrTibjheWt+HUg5fsq47ebSCjAqoggPhrqVdUQX6TQ+uo4ezeZWGGVGxsKdwly1wJGRwr7YEU4Q4LWop19c1bKVNuHIqOkC1K2KqGNfgabSsS5pL8m9zjXzsmreWRuQcelZd5ZRzl9s40VwYwY9Uqg30O4/3NKNHrXm37JxKNUXON3jFiFMv7frVr4Oq9huQ/itUMnLvioy+6h+063Rm6NXK/zl9STgCbpl9kOITuddEBwndKP7KLRzZJtG/IckaKCUPs4hWRs9dDd+jJ admin@client
- 4.在客户端使用密钥对验证
-
1,改配置文件 vim /etc/ssh/sshd_config 2.客户端登录 [root@client ~]# ssh hanjiali@192.168.2.10 hanjiali@192.168.2.10‘s password: Last login: Sat Oct 10 20:00:02 2020
至此:SS服务构建成功