龙空技术网

Linux服务器配置-SSH远程登录管理(三)

itcat5225 258

前言:

眼前同学们对“centossftp新增用户”大约比较重视,姐妹们都需要剖析一些“centossftp新增用户”的相关内容。那么小编在网摘上网罗了一些对于“centossftp新增用户””的相关文章,希望咱们能喜欢,小伙伴们一起来了解一下吧!

上文:Linux服务器配置-SSH远程登录管理(二)

基于密钥对登录认证配置

一、 密钥对验证配置图

二、实例配置要求说明

现在要用客户端使用密钥对认证方式分别登录CentOS6远程主机(IP192.168.1.90)和RHEL7远程主机(IP192.168.1.93),要求对CentOS6主机使用root用户登录,对RHEL7主机使用普通用户(snowfox)登录。

三、SSH配置步骤

1、 在客户端上创建密钥对文件

在Linux客户端上创建密钥对文件。

ssh-keygen -t rsa

系统会提示用户保存密钥对文件名及路径、是否设置密码,这里直接回车使用系统默认的保存路径及文件名,并设置私钥密码。

注:系统默认保存路径为:用户家目录/.ssh/目录中。默认文件名为:id_rsa为私钥文件,id_rsa_pub为公钥文件。

如私钥密码为空,视为无密码。

在Windows客户端上用SSH工具创建密钥对文件。(以Xshell工具为例)

打开Xshell软件,选择【工具】->【用户密钥管理者】

点击【生成】按钮

选择【密钥类型】和【密钥长度】->【下一步】

系统生成密钥对->【下一步】

在【密钥名称】中输入文件名,在【密码】框中输入私钥密码->【下一步】

注:密码为空,视为无密码。

在【公钥格式】下拉框中选择SSH2-OpenSSH,然后单击【保存为文件】将公钥保存至Windows客户端上,以后使用。

2、 将客户端生成的公钥文件上传到服务器(Server)端(这里以Linux客户端生成的公钥文件为例)

scp .ssh/id_rsa.pub root@192.168.1.90:/root/

scp .ssh/id_rsa.pub root@192.168.1.93:/root/

由于现在两台服务器可以通过密码方式认证登录,所以可以使用scp命令传输文件。

3、 进入服务器端,将客户端上传的公钥文件,导入至~/.ssh/authorized_keys文件中。

客户端用什么用户身份登录到服务器上,与客户端无关。它取决于服务器上将客户端的公钥信息保存在什么位置上;如果保存在root家目录下的.ssh/authorized_keys文件中,就允许客户端用root身份登录服务器(sshd_config配置文件需要设置允许root用户登录);保存在普通用户家目录下的.ssh/authorized_keys文件中,就允许用其身份登录客户端。

在CentOS6远程主机中(CentOS6主机需root用户登录)

在root用户家目录中查询是否存在.ssh目录,如不存在需要新建.ssh目录。

mkdir .ssh

导入上传的公钥至公钥库文件中。

cat /root/id_rsa.pub >> .ssh/authorized_keys

修改公钥库文件的权限为600并删除上传的公钥文件。

chmod 600 .ssh/authorized_keys

如果系统开启了SELinux,还需以下操作。

用getenforce命令查询SELinux的运行模式

enforcing 强制模式

permissive 警告模式

disabled 禁用模式

如果不是显示disabled,则表明系统已经开启了SELinux。

用ls -Z 命令查看文件或目录的上下文类型

ls -ldZ .ssh

用 chcon -t 命令更改文件或目录的上下文类型

chcon -Rt ssh_home_t .ssh

在RHEL7远程主机中(RHEL7主机需普通用户snowfox登录)

与上面的做法基本相同这里就不再讲述,只是注意.ssh/authorized_keys文件是在普通用户的家目录中,并注意更改.ssh目录和authorized_keys文件的所有者。

注:将客户端公钥导入至,信息文件中时,要使用>>重定向追加输出至authorized_keys文件中,否则会将原有的信息删除,可以用此方法追加多台客户端公钥。

4、 修改服务器端sshd_config配置文件

· 在CentOS6远程主机中

Protocol 2

SyslogFacility AUTHPRIV

PermitRootLogin yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication no

ChallengeResponseAuthentication no

GSSAPIAuthentication yes

GSSAPICleanupCredentials yes

UsePAM yes

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES

AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT

AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE

AcceptEnv XMODIFIERS

X11Forwarding yes

Subsystem sftp /usr/libexec/openssh/sftp- server

在RHEL7远程主机中

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_ecdsa_key

HostKey /etc/ssh/ssh_host_ed25519_key

SyslogFacility AUTHPRIV

PermitRootLogin no

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication no

ChallengeResponseAuthentication no

GSSAPIAuthentication yes

GSSAPICleanupCredentials yes

UsePAM yes

X11Forwarding yes

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES

AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT

AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE

AcceptEnv XMODIFIERS

Subsystem sftp /usr/libexec/openssh/sftp- server

5、重启SSH服务

在CentOS6远程主机中

service sshd restart

在RHEL7远程主机中

systemctl restart sshd

6、 登录到远程主机

用Linux客户端登录远程主机

用root用户登录CentOS6远程主机并退出。

ssh root@192.168.1.90

用普通用户登录RHEL7远程主机并退出。

ssh snowfox@192.168.1.93

用Windows客户端通过SSH工具登录远程主机

将Linux客户端创建的私钥文件(id_rsa)拷贝至Windows客户端。(用Xftp、WinSCP等软件都可,这里不再讲述。)

打开Windows ssh工具,这里以Xshell为例。

选择【工具】->【用户密钥管理者】

点击【导入】按钮

选择从Linux客户端上保存的私钥文件->点击【打开】

输入私钥密码,点击【确定】

单击【关闭】

选择【文件】菜单->【新建】,开启【新建会话属性】页。

创建新的会话连接,在上篇文章中已经介绍,这里不再讲述。

只是在【用户身份认证】时,进行如下选择。

在【方法】中选择Public Key,即用密钥对证方式进行连接认证。

在【用户名】中输入远程主机的用户名。(必须是远程主机中已存在的用户)。

在【用户密钥】中选择刚刚导入的私钥。

在【密码】中输入私钥的密码。

单击【连接】,就可以通过密钥对的方式连接远程主机了。

以上是我在学习Linux系统中整理的一些学习要点,肯定会有不对的地方,希望各位大侠给与指正,我们共同学习!谢谢!

Linux服务器配置-SSH远程登录管理(四)

实例说明SSH更改端口后的配置,主要是防火墙及SELinux。

标签: #centossftp新增用户