SSH 远程登录系统和远程拷贝

北 染 星 辰 2024-08-09 16:37:12 阅读 75

文章目录

目录

目录

文章目录

前言

一.SSH的基本用法

SSH基本用法:

 SSH无密码登录

 二.SSH安全设置

禁用密钥登录

三.SSH限制用户

禁止Root用户登录

 禁止普通用户登录

 四.SSH慢连接问题解决

五.远程拷贝      


前言

很多时候服务器并没有服务器,我们也不能每次都通过控制台去管理服务器,这时候就需要远程登录,相比于Telnet,SSH采用密文传输更加安全。


一.SSH的基本用法

SSH配置文件解析:

<code>[root@server1 ~]# vim /etc/ssh/sshd_config

17.#Port 22 #监听端口,默认监听22端口 【默认可修改】

18.#AddressFamily any #IPV4和IPV6协议家族用哪个,any表示二者均有

19.#ListenAddress 0.0.0.0 #指明监控的地址,0.0.0.0表示本机的所有地址 【默认可修改】

20.#ListenAddress :: #指明监听的IPV6的所有地址格式

28.HostKey /etc/ssh/ssh_host_rsa_key # rsa私钥认证 【默认】

29.#HostKey /etc/ssh/ssh_host_dsa_key # dsa私钥认证

30.HostKey /etc/ssh/ssh_host_ecdsa_key # ecdsa私钥认证

31.HostKey /etc/ssh/ssh_host_ed25519_key # ed25519私钥认证

43.SyslogFacility AUTHPRIV #当有人使用ssh登录系统的时候,SSH会记录信息,信息保存在/var/log/secure里面

48.#LoginGraceTime 2m #登录的宽限时间,默认2分钟没有输入密码,则自动断开连接

49.#PermitRootLogin yes #是否允许管理员远程登录,'yes'表示允许

51.#MaxAuthTries 6 #最大认证尝试次数,最多可以尝试6次输入密码。之后需要等待某段时间后才能再次输入密码

52.#MaxSessions 10 #允许的最大会话数

59.AuthorizedKeysFile .ssh/authorized_keys #选择基于密钥验证时,客户端生成一对公私钥之后,会将公钥放到.ssh/authorizd_keys里面

79.PasswordAuthentication yes #是否允许支持基于口令的认证

83.ChallengeResponseAuthentication no #是否允许使用键盘输入身份验证,也就是xshell的第三个登录方式

129.#UseDNS yes #是否反解DNS,如果想让客户端连接服务器端快一些,这个可以改为no

146.Subsystem sftp /usr/libexec/openssh/sftp-server #支持 SFTP ,如果注释掉,则不支持sftp连接

154.AllowUsers user1 user2 #登录白名单(默认没有这个配置,需要自己手动添加),允许远程登录的用户。如果名单中没有的用户,则提示拒绝登录

SSH基本用法:

#ssh 登录用户@登录服务器IP

[root@localhost ~]# ssh zt@192.168.23.133

注:指定的用户必须在登录服务器上存在否则出现如下情况,无论密码正确与否都无法登录

 SSH无密码登录

 如果做了密钥认证,远程登录时无需密码即可登录,具体操作如下:

演示案例使用主机 zt 用户连接靶机 tom 用户

首先在当前服务器的用户下生成一个密钥对

<code>[zt@localhost1 ~]$ ssh-keygen -f ~/.ssh/id_rsa -N ""

-N:后面的双引号中没有空格,代表不对生成的私钥加密

-f:指定生成私钥的路径和名称,默认路径:~/.ssh/id_rsa.pub

 

 id_rsa:私钥           id_rsa.pub:公钥

 第二步将生成的公钥内容拷贝到需要访问的服务器对应用户(tom)的家目录下

<code>[zt@localhost1 ~]$ ssh-copy-id tom@192.168.23.133

在执行ssh-copy-id命令之前,需要确保本地计算机上已经生成了密钥对,

并且公钥已经保存在正确的位置(默认为~/.ssh/id_rsa.pub)

命令执行完成后会将公钥内容复制到authorized_keys文件中,以实现无密码登录。

执行ssh-copy-id命令会自动在相应用户下创建.ssh/authorized_keys文件并保存公钥内容

 第三步通过zt用户可以无密钥登录tom用户 

 

 二.SSH安全设置

禁用密钥登录

以root用户更改配置文件如下:

<code>[root@localhost ~]# vim /etc/ssh/sshd_config

将#PubkeyAuthentication yes 修改为 PubkeyAuthentication no

[root@localhost ~]# systemctl restart sshd

禁止密码登录

<code>[root@localhost ~]# vim /etc/ssh/sshd_config

将 #PasswordAuthentication yes 改为 PasswordAuthentication no

三.SSH限制用户

禁止Root用户登录

默认情况下是可以用root用户登录到远端服务器的,如果要禁用root用户登录请执行如下操作:

<code>[root@localhost ~]$ vim /etc/ssh/sshd_config

将PermitRootLogin yes 改为 PermitRootLogin no

 禁止普通用户登录

禁止普通用户登录只需要在配置文件/etc/ssh/sshd_config中的任意一行添加DenyUsers userX 就可以限制用户X登录了。

<code>[root@localhost ~]# vim /etc/ssh/sshd_config

[root@localhost ~]# systemctl restart sshd.service

 

 四.SSH慢连接问题解决

 有时候当我们在通过SSH登录一台服务器时,连接过程会比较慢,要等待十几秒才会出现输入密码的提示。很多时候是因为系统自动去做反向解析,把连接的IP地址反向解析成主机名,才会导致ssh速度慢。

为了防止这个问题,可以修改服务器上的配置,用vim编辑器打开/etc/ssh/sshd_config,找到UseDNS, 进行如下修改。

将#UseDNS yes修改为 no ,这里同时将注释符号#去掉,然后重启sshd即可。

五.远程拷贝      

有时候我们需要远程拷贝一些文件,例如,把文件或目录从A机器拷贝到B机器上去,这种情况下我们一般用scp或rsync。

以root用户的身份登录192.168.182.138并拷贝文件

当我们需要以特定身份登录目标服务器并拷贝文件时可以执行如下命令:

<code>[root@192 ~]# scp /share_file zt@192.168.182.138:/share_file1

 当我们将需要拷贝目录时通常会出现如下错误:

上述报错产生的原因是因为/share_file是一个目录并非一个文件,若需要拷贝目录需要加上 -r选项

<code>[root@192 ~]# scp -r /share_file zt@192.168.182.138:/share_file1


总结



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。