0


SSH远程访问及控制

一、SSH远程管理

1、●SSH定义

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。

2、●SSH优点

①数据传输是加密的,可以防止信息泄漏
②数据传输是压缩的,可以提高传输速度

3、●SSH配置文件

①sshd 服务的默认配置文件是/etc/ssh/sshd_config

②ssh_config和sshd_config都是ssh服务器的配置文件
二者区别在于ssh_config是针对客户端的配置文件,sshd_config则是针对服务端的配置文件

[root@ky17 home]# cd /etc/ssh
[root@ky17 ssh]# ls
moduli       ssh_host_ecdsa_key      ssh_host_ed25519_key.pub
ssh_config   ssh_host_ecdsa_key.pub  ssh_host_rsa_key
sshd_config  ssh_host_ed25519_key    ssh_host_rsa_key.pub

二、配置OpenSSH服务端

vim /etc/ssh/sshd_config
Port 22                                 #监听端口为22
ListenAddress 0.0.0.0                     #监听地址为任意网段,也可以指定OpenSSH服务器的具体IP

LoginGraceTime 2m                         #登录验证时间为2分钟
PermitRootLogin no                         #禁止root用户登录
MaxAuthTries 6                             #最大重试次数为 6

PermitEmptyPasswords no                 #禁止空密码用户登录
UseDNS no                                 #禁用 DNS 反向解析,以提高服务器的响应速度

#只允许zhangsan、lisi、wangwu用户登录,且其中wangwu用户仅能够从IP地址为61.23.24.25 的主机远程登录
AllowUsers zhangsan lisi [email protected]                     #多个用户以空格分隔
#禁止某些用户登录,用法于AllowUsers 类似(注意不要同时使用)
DenyUsers zhangsan                     禁止zhangsan用户登录

三、ssh远程登录命令

=======ssh远程登录方式============

方法一∶
ssh 【远程主机用户名】@【远程服务器主机名或IP地址】
当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。

[root@ky17 bao]# ssh [email protected]      远程登录服务端的zhnagsan用户
[email protected]'s password:               输入密码
Last login: Wed Jan 12 14:20:29 2022 from 192.168.247.1
[zhangsan@ky17 ~]# exit                           登出

登录方法二
ssh-1 【远程主机用户名】【远程服务器主机名或IP 地址】
-1 选项,指定登录名称。
-p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)
注∶第一次登录服务器时系统没有保存远程主机的信息,为了确认该主机身份会提示用户是否继续连接,输入yes后登录,这时系统会将远程服务器信息写入用户主目录下的$HOME/.ssh/known hosts文件中,下次再进行登录时因为保存有该主机信息就不会再提示了

四、远程复制scp


客户端上传文件到服务器
[root@ky17 home]# scp 1.txt [email protected]:/opt    拷贝1.txt文件到服务端zhangsan的opt目录下

[email protected]'s password:                    输入服务端zhangsan用户密码
1.txt                                                   100%    0     0.0KB/s   00:00 进度 

切换到服务器端
[zhangsan@ky17 opt]# ls                                上传成功
1.txt  

服务器文件下载到客户端

[root@ky17 home]# scp [email protected]:/opt/ceshi ./  拷贝服务器的/opt/ceshi 文件到当前目录
 
[email protected]'s password:  
ceshi                                                   100%    0     0.0KB/s   00:00    
[root@ky17 home]# ls       成功                
1.txt   ceshi  

客户端上传目录文件到服务器
[root@ky17 home]# scp -r /home/ceshi2 [email protected]:/opt   必须加-r
[email protected]'s password: 

[root@ky17 opt]# ls
1.txt   ceshi    ceshi2(目录)   

五、sftp安全FTP

由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样。(一般不用)

sftp [email protected]  
sftp> ls
sftp> get 文件名           下载服务器文件
sftp> get -r 目录名        
sftp> put 文件名           上传服务器到博客
sftp> put -r 目录名
sftp> quit            #退出

六、sshd服务支持验证方式

1.密码验证

对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解,暴力破解可看之前博客有详细描述系统弱口令检测

2.密钥对验证

要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。(无需输入密码)

当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式。

详细步骤

1、创建客户端密钥对

[admin@ky17 home]$ ssh-keygen -t ecdsa        创建密钥对
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_ecdsa): 指定私钥位置。回车即用默认位置

Created directory '/home/admin/.ssh'.         生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下
Enter passphrase (empty for no passphrase): 输入私钥密码
Enter same passphrase again: 二次确认
Your identification has been saved in /home/admin/.ssh/id_ecdsa.
Your public key has been saved in /home/admin/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:nPB/wm09ufDUxAhIhleyz9OQt3f0L23NFIjwbwZIHlc admin@ky17
The key's randomart image is:
+---[ECDSA 256]---+
|         =+ooE   |
|        +oB+...  |
|      .  +o++....|
|       + . oo= =o|
|        S   +++ B|
|         o .oo O+|
|          + = * B|
|           + + = |
|              o  |
+----[SHA256]-----+

2、查看私钥公钥

[admin@ky17 home]$ ls -l ~/.ssh/id_ecdsa*
-rw-------. 1 admin admin 314 1月  12 18:39 /home/admin/.ssh/id_ecdsa    私钥
-rw-r--r--. 1 admin admin 172 1月  12 18:39 /home/admin/.ssh/id_ecdsa.pub  公钥

3、导入公钥文本至服务器的/home/zhangsan/.ssh/目录中

[admin@ky17 home]$ cd ~/.ssh/  
[admin@ky17 .ssh]$ ssh-copy-id -i id_ecdsa.pub [email protected] 公钥文本至服务器的/home/zhangsan/.ssh/目录中

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_ecdsa.pub"
The authenticity of host '192.168.247.18 (192.168.247.18)' can't be established.
ECDSA key fingerprint is SHA256:e7NbhXTuYAmXs+7X2xz+GejoSw1s1iZ0cdLx8T3/vi8.
ECDSA key fingerprint is MD5:9d:65:a8:0a:c5:d7:63:93:6b:d3:93:82:b1:93:28:d0.
Are you sure you want to continue connecting (yes/no)? yes 第一次远程登录需要确认
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

[email protected]'s password: 输入zhangsan密码
Permission denied, please try again.
[email protected]'s password: 二次确认

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

4、查看服务器是否接收客户端公钥文件

[root@ky17 home]# cat /home/zhangsan/.ssh/authorized_keys   已经成功接受
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP70bkv0pBHG/2bEi49Fo4zjh5YXwkq61JKB6rNjUaCw1PG6QN9IZNBy/xD+plE8ipcgwVsIvOSUlFb94KWbC3g= admin@ky17

5、远程连接服务端

[admin@ky17 .ssh]$ ssh [email protected]
Enter passphrase for key '/home/admin/.ssh/id_ecdsa':  输入私钥密码
Last failed login: Wed Jan 12 18:43:44 CST 2022 from www.benet.com on ssh:notty
There were 5 failed login attempts since the last successful login.
Last login: Mon Jan  3 22:10:19 2022
[zhangsan@ky17 ~]$ exit             登入后登出

6、在客户机设置ssh代理,实现免交互功能(无需密码登录)

[admin@ky17 .ssh]$ ssh-agent bash     开启ssh代 理
[admin@ky17 .ssh]$ ssh-add          添加密钥到ssh_agent缓存
Enter passphrase for /home/admin/.ssh/id_ecdsa:  输入私钥密码
Identity added: /home/admin/.ssh/id_ecdsa (/home/admin/.ssh/id_ecdsa)

7.登录远程服务器测试

[admin@ky17 .ssh]$ ssh [email protected]  
Last login: Wed Jan 12 18:45:00 2022 from www.benet.com
[zhangsan@ky17 ~]$             直接登录无需密码
 
标签: ssh 安全 服务器

本文转载自: https://blog.csdn.net/m0_64651064/article/details/122460216
版权归原作者 快乐张宝宝 所有, 如有侵权,请联系我们删除。

“SSH远程访问及控制”的评论:

还没有评论