ssh远程管理服务配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh远程管理服务配置相关的知识,希望对你有一定的参考价值。

##sshd远程连接的优化

版主QQ:2559721591    资料网站:http://rshare.ys168.com


网络环境:

ssh服务器(虚拟机):192.168.10.25

ssh客户机(物理机):192.168.10.1

 

ssh:是安全的外壳的缩写(Secure Shell)。是专门为远程登录会话和其他网络服务提供安全性的协议。

linux的ssh远程登录软件:openssh,默认端口是22。

 

显示远程连接过程:ssh  -v  [email protected]

 

#软件安装

yum  install  -y  openssh-server  openssh-clients  openssh

说明:服务端:openssh-server

      客户端:openssh-clients

      通用程序:openssh

      密钥验证:openssh-askpass

 

服务基本管理:

    重启服务:service  sshd  restart

    设为开机启动:chkconfig   sshd  on

 

常用命令:ssh、scp、ssh-keygen、ssh-copy-id、sftp

 

ssh远程登录:

语法:ssh   [选项]  用户@远程IP   [命令]

选项:-v  显示过程

例:远程执行命令:ssh  [email protected]   ‘ls /;ifconfig‘

    远程登录:ssh  [email protected] 

 

scp命令:

功能:采用ssh协议上传、下载文件。

语法:scp  -rv   源文件    目标文件

选项:-r 递归复制目录     -v 显示过程    -P 指定端口  

实例:上传本机/etc目录到[email protected]:/tmp/目录。

   scp  -rv  /etc   [email protected]:/tmp/       //上传文件

   ssh  [email protected]   ls  /tmp/et*         //验证结果

 

实例:上传[email protected]:/etc目录到本机/opt目录。

   scp  -rv  [email protected]:/etc   /opt/       //下载文件 

   ls   /opt/      //验证结果

 

#问题:ssh服务连接慢的解决。

说明:sshd_config是服务器配置,ssh_config是客户端配置文件。

首先:vi  /etc/ssh/sshd_config 修改如下内容:

UseDNS  no     //禁用DNS解析功能(122行)

GSSAPIAuthentication   no    //禁用GSSAPI授权功能(81行)

 

然后:vi  /etc/ssh/ssh_config    //客户端配置文件,修改如下内容:

GSSAPIAuthentication   no    //禁用GSSAPI授权功能(81行)

 

最后:1、重启sshd服务:service  sshd  restart

      2、用客户机远程登录测试:ssh  [email protected]   ifconfig

 

##需求:实现ssh免密码远程登录。采用id_rsa私钥、id_rsa.pub公钥文件自动验证功能。

RSA签名和验签过程:

1.签名过程:

    client提取消息m的消息摘要h(m),并使用自己的私钥对摘要h(m)进行加密,生成签名s。

    client将签名s和消息m一起,使用server发过来的公钥进行加密,获得密文c,发送给server。

2.验签过程:

    server接受到密文后,用自己的私钥对其解密,获得明文消息m和签名s。

    server使用client的公钥解密数字签名s,获得消息摘要h(m)。

    server使用相同的方法提取消息m的消息摘要h(m)与上一步解密得到的h(m)进行比较,如果相同则验签成功。

 

公钥和私钥须知:

  A、公钥是给别人的:

      1、发送密文使用公钥加密

      2、验证签名使用公钥验证

  B、私钥是自己保留的

      1、接受密文使用私钥解密

      2、发送签名使用私钥签名

注意:上述过程逆转是不行的,比如使用私钥加密,使用公钥解密是不行的。

 

实现思路:1、在客户机用ssh-keygen生成id_rsa私钥、id_rsa.pub公钥文件。

          2、将客户机的id_rsa.pub公钥文件上传给ssh服务器指定的用户家目录。

          3、在客户机远程登录,测试是否免密码登录。

注意:公钥和私钥验证是识别身份是根据客户机的主机名来确认。上传客户机的公钥后,一定不要再修改客户机的主机名,否则公钥和私钥无法认证。


实施步骤:

1、在客户机生成公钥和私钥(交互式)ssh-keygen  -t  rsa

(非交互):ssh-keygen  -t  rsa  -f  ~/.ssh/id_rsa  -N  ‘‘

选项说明:-t指定加密算法    -f指定密钥文件   -N指定加密密码

#生成成对的公钥和私钥密钥。

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):回车

#这里需要输入两次密钥验证密码 这里我们不在设置

Enter passphrase (empty for no passphrase):回车(空密码)

Enter same passphrase again:回车(空密码)

+

#私钥保存路径及文件名

Your identification has been saved in /root/.ssh/id_rsa. 回车

+

#公钥保存路径进文件名

Your public key has been saved in /root/.ssh/id_rsa.pub. 回车

The key fingerprint is:以下为密钥指纹标识符

aa:0e:89:eb:83:55:44:d1:a1:ed:2d:81:aa:4e:47:29 [email protected]

2、在客户机上传公钥给服务器:

   方法一:ssh-copy-id   [email protected]

   方法二:ssh-copy-id   -i  ~/.ssh/id_rsa.pub   [email protected]

3、在客户机测试远程控制:ssh   [email protected]   ifconfig

 

附加任务:扫描192.168.10.25主机上的key文件内容。

   ssh-keyscan  192.168.10.25

 

#ssh服务端配置文件安全加固。

#修改服务器主配置文件:vi  /etc/ssh/sshd_config

Port 22

ListenAddress 0.0.0.0

Protocol 2

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

#LoginGraceTime  2m     //登录宽限期为2分钟

#PermitRootLogin yes    //允许root登录

#StrictModes yes  //yes必需保证存放公钥的目录的属主与登陆用户名是相同的

#MaxAuthTries 6    //密码错误重试6次

#MaxSessions 10    //最大10个会话

#RSAAuthentication yes        //启用RSA验证

#PubkeyAuthentication yes     //启用公钥验证

#AuthorizedKeysFile     .ssh/authorized_keys    //公钥保存的文件

#PermitEmptyPasswords no      //禁止空密码登录

PasswordAuthentication yes     //启用密码验证

Subsystem       sftp    /usr/libexec/openssh/sftp-server     //启用子系统sftp共享服务

 

#sftp客户端

功能:采用sftp协议登录到ssh服务器,访问服务器上的文件,在服务器和客户机之间传输文件(上传、下载)。

语法:sftp   用户名@远程IP

实例:sftp   [email protected]

常用命令:

说明:sftp登录成功后,可以执行大多数文件管理的shell命令。

help或?      //显示命令帮助

pwd      //显示服务器工作路径

!pwd     //显示本地工作路径

ls       //显示服务器当前目录的文件列表

cd   /tmp     //切换服务器路径到/tmp目录

!ls           //查看本地文件列表

lcd  /etc     //切换本地路径到/etc

get  源   目标     //下载文件

put  源   目标     //上传文件

bye     //退出登录

 

服务器端配置文件小结:

[[email protected]localhost ~]# vim /etc/ssh/sshd_config 配置文件中主要的三部分内容如下

1、常见SSH服务器监听的选项如下:

Port 22                    //监听的端口为22

Protocol 2                //使用SSH V2协议

ListenAdderss 0.0.0.0    //监听的地址为所有地址

UseDNS no                //禁止DNS反向解析

必做:找到UseDNS选项,默认为yes,会影响连接速度,将yes改为no。

2、常见用户登录控制选项如下:

PermitRootLogin no            //禁止root用户登录

PermitEmptyPasswords no        //禁止空密码用户登录

LoginGraceTime 2m            //登录验证时间为2分钟

MaxAuthTries 6                //最大重试次数为6

AllowUsers user            //只允许user用户登录,与DenyUsers选项相反

3、常见登录验证方式如下:

PasswordAuthentication yes                //启用密码验证

PubkeyAuthentication yes                    //启用秘钥验证

AuthorsizedKeysFile .ssh/authorized_keys    //指定公钥数据库文件

 

 

 

 

 

 

 

 


以上是关于ssh远程管理服务配置的主要内容,如果未能解决你的问题,请参考以下文章

了解关于SSH远程连接服务

配置ssh远程登录

linux运维架构之路-SSH远程管理服务

SSH远程管理服务实战

ssh远程连接服务器执行命令

ssh服务介绍