SSH是什么

  1. Secure Shell 安全外壳协议
  2. 确立在应用层基础上的酒泉磋商
  3. 有限扶助、转为远程登陆会话和此外网络提供安全性的商业事务
  4. SSH客户端是用来各种平台

SSH协议

1.背景介绍

SSH服务,

  SSH: (Secure
Shell)的缩写,是树立在应用层和传输层基础上的安全协议,SSH是现阶段
较为可信的专为远程登录会话和别的网络服务提供安全性的情商,数据在选拔ssh情势传输的时候是加密的,即便别人截获也不亮堂是何等数据;为客户端提供安全的Shell环境,用于远程管理,私下认可端口:TCP
22 telnet 23
SSH基于公钥加密(非对称加密)技术:
              数据加密传输;
                 客户端和服务器的身份验证;
相关软件包:

       澳门金沙国际 1

      配置文件参考:

       
 澳门金沙国际 2

            相关登录音信:

           
 澳门金沙国际 3

        命令:能够用-p选项钦定端口号登陆:
      ssh 192.168.1.108 -p 222           

1》安装相关软件,私下认可已经设置;

     澳门金沙国际 4

  2》修改配置文件,用xshell软件远程登录:
  1>密码验证(私下认可使用,认证的用户要求地点存在,/etc/passwd
/etc/shadow),

         简单布署:

         
澳门金沙国际 5

         
澳门金沙国际 6

   澳门金沙国际 7

      2>密钥认证:

         
澳门金沙国际 8

     
上述文件存放本地主机当前用户ssh连接过的服务器的公钥,存放在日前用户的家目录下的.ssh目录里,此文件不供给协调创建,ssh连接之后就会自动创制;
============= 公钥认证客户端具体流程(刚刚起头):  

     澳门金沙国际 9

        澳门金沙国际 10

      澳门金沙国际 11

       ==========================SSH公钥认证流程:

     
  澳门金沙国际 12

实例分析:
1》客户端用普通用户创制密钥对:

      澳门金沙国际 13

        
注意:公钥和私钥,还有ssh配置文件的权力相对不可能乱动,皆以为600:

SSH通过密钥登陆,SSH远程登陆。        澳门金沙国际 14

  2》将用户的公钥上传到服务器的root用户家目录下.ssh/authorized_keys:
   方法:

澳门金沙国际,      澳门金沙国际 15

       澳门金沙国际 16

   3》在客户端进行验证,注意要用普通用户来报到服务器的root用户权限:

       澳门金沙国际 17

  ==============在xshell上选择密钥认证登录:

密钥的功能可分为三种:

*  数据加密;能担保所发送数据的机密性;
  数字签名:能保险数据完整性,身份验证和不足抵赖;

===============数字签名原理:*

    澳门金沙国际 18

 ===============密钥的额外成效使用:
1》定时能够在客户机上远程执行服务器上的本子,而不用登录服务器?
     
 答:在客户机上写一个本子触发服务器上的剧本,然后在客户机上执行安排任务就足以了,客户机与服务器之间必须布置密钥认证;

     
  澳门金沙国际 19

2》通过SSH能够运转服务器中的窗口程序:
  ssh -X
[email protected]
  然后运营相关窗口程序命令,可是客户端必须在图形界面下的虚构终端上运营命令;
            

  ===================问题:
1>scp远程复制文件和ssh远程登录都得以行使-p来钦定端口号;
2>ssh-copy-id 只好采取22号端口;
3>ssh的安全性难点?你有怎么样措施?
  密钥认证;
  不允许root登录;
  只同意一些固定的IP地址ssh过来(使用TCPWrappers中的hosts.allow,hosts.deny);

 

     澳门金沙国际 20

        使用chkconfig –list 命令能够查看有哪些独立进度和最佳进度     

       
 澳门金沙国际 21

  4>SSH日志存放地方?
  /var/log/messages
  /var/log/secure
  5>密钥文件的权限性问题?
  不可能随便更改,必须保证600权力,know_hosts文件也同等;
  6>SSH连接相比慢?
  将服务器中的配置文件sshd_config文件中的UseDNS选项注释去掉,并no,不让SSH服务器去举行DNS解析,这样能够节省大批量年华;
  7>SSH远程登录执行脚本,若是突然网络断开了,脚本是或不是会继续执行?
  脚本会继续执行,当网络再一次连接上后,假如客户端是在命令行上SSH连接的,那么客户端会自动重新连接上服务器;
  8>xshell中什么行使密钥连接服务器?
  Linux服务器首先生成一对密钥;将私钥发送给Windows客户端,并且将用公钥生成authorized_keys
文件;然后就足以在xshell端用密钥认证形式登录了;
  9>批量运行难题?
  使用供给:客户端与服务器之间要建立单向信任关系,密钥认证:
  pssh ——>parallel 并行 —>批量执行命令
  pscp——->批量传输文件

 

SSH: (Secure
Shell)的缩写,是赤手空拳在应用层和传输层基础上的安全磋商,SSH是眼前较为可信赖的专为远程登录会话和其余互联网服务提供…

服务器安装SSH服务

  1. 安装:yum install openssh-server
  2. 启动:service sshd start
  3. 设置开启运转:chkonfig sshd on
  4. 查阅进程是或不是留存:ps -ef |grep ssh

概述

  • ssh协议, 安全壳协议, 可以安全远程登录Linux主机,
    专为远程登录会话和其余网络服务提供安全性的协议.
    openssh是ssh协议的开源免费达成

  • ssh协议客户端和服务端

    • ssh协议包涵客户端和服务端
    • 客户端要求设置openssh-clients,
      才能应用ssh命令登陆到任何主机,
      客户端配置文件为/etc/ssh/sshd_config;
    • 服务端要求设置openssh-server, Linux安装后会暗中同意安装该软件,
      并且开启sshd劳动, 服务端配置文件为/etc/ssh/ssh_config
  • 加密算法

    • 对称加密算法: 加密和平解决密的密钥是同3个
    • 非对称加密算法: 公钥用于加密, 私钥用于解密, 常用算法PAJEROSA

毕生我们都以通过输入账号和密码的措施登陆远程终端,这有没有其余的玩法吧?答案是:当然有!下边就介绍一种通过密钥的格局登陆SSH。

客户端安装SSH工具

  1. win平台使用xshell
  2. Linux平台要求安装客户端软件:yum install openssh-clients

远程登陆示例

通过ssh web02一声令下切换来另一台服务器到底做了哪些操作呢?

第三查看/etc/ssh目录, 如下

sshd_config       
ssh_host_dsa_key.pub  
ssh_host_key.pub  
ssh_host_rsa_key.pub
ssh_config  
ssh_host_dsa_key  
ssh_host_key          
ssh_host_rsa_key

openssh暗许加密算法是利用兰德酷路泽SA非对称加密算法, 安装sshd服务后,
会在etc/ssh目录下转移ssh_host_rsa_key.pub公钥和ssh_host_rsa_key私钥,
公钥用于加密, 私钥用于解密

当执行ssh web02指令, 到底发生了何等?
动用web01和web02两台机器测试下

  • web01对应ip为192.168.5.131(充当客户端)
  • web02对应ip为192.168.5.132(充当服务端)

[root@web01 .ssh]# ssh web02
The authenticity of host 'web02 (192.168.5.132)' can't be established.
RSA key fingerprint is 46:f0:2a:ce:81:72:ad:84:8f:69:e0:c5:7b:e0:bd:79.
Are you sure you want to continue connecting (yes/no)?

如果选拔yes,
则会把web02的公钥(ssh_host_rsa_key.pub)追加到web01的/root/.ssh/known_host文本下,
然后输入密码, 就能够登录到web02上, known_host会追加上如下内容

web02,192.168.5.132 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtTM1HQVXDDeMABX1rtgx3AwKAIcfX/eGN4eFj3XjARyVcEqTXdjc+4/Gqdv9QTHdFsIeFrVHeyjuPLuoLAZZ1cBUmoUVp7dYdkUnX0of1CTOTO2+g1K2T4nCshh7uzL2euHAWmQ9VcXwrBeKAiO7rOuW3fiQ5kUAtLVTTow8Ewus3U7Tqim0dkc+1Fc6FXowsSTqxMEsJDJ52pZV6wjoZHkoQVETolf160CJgWelDmMiJ6sDrYSaxnD7XK7Wx4IjUkTp9OJ2jBWlOfRkdRgyIT1CBol24/JqlVI6EAxTCKemap+piCKtD7QPIPmTG5PhlHAg6pQYgTWzqJypSuA9ww==

当输入yes时, web01会保留web02的公钥,
然后选择保留的web02公钥去加密对称加密密钥,
然后web02使用非对称加密密钥解密对称加密密钥,
获取出用于对称加密的密钥,
然后web01就能够通过对称加密的密钥去加密消息,
web02使用该密钥解密传输音讯, 包含用户名和密码, 从而进行表达登陆,
包涵继承操作, 都是利用对称加密的密钥拓展操作

怎么要不采用对称加密?

  • 对称加密算法首先是客户端和服务端都要通晓该密钥, 假设明文字传递输被缴械,
    将会那么些危急, 所以需求利用非对称加密算法去加密该密钥

缘何不都选拔非对称加密算法,

  • 非对称加密相当成本财富

工具准备:一台计算机(推荐Win10),一台虚拟机(推荐VMware
Workstation11),SSH登陆工具(xshell,securecrt,putty,推荐xshell),Linux系统(RedHat,CentOS,debian,Ubuntu,推荐centos7.3)。

客户端链接SSH服务

  1. 在win,打开xshell,新建四个会话:ssh root@192.168.2.20,输入密码就能够了进入了
  2. 在Linux,还是:ssh root@192.168.2.20

使用密钥对长途登录

如何不用输入密码, 直接动用ssh web02签到呢? 可以经过密钥对的格局贯彻

  • 先是选用ssh-keygen变化认证公钥和私钥

[root@web01 .ssh]# ssh-keygen 
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:50:bf:f1:29:bc:3e:82:f6:a8:50:27:72:e0:7d:9c root@web01
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|.                |
|... . .          |
|..+.oE  S        |
| + +.. .         |
|. .. .+          |
|. oo..++ .       |
|.o..oo++o        |
+-----------------+

查看/root/.ssh/目录, 会生成出公钥id_rsa.pub和私钥id_rsa

-rw-------. 1 root root 1675 1月  21 06:48 id_rsa
-rw-r--r--. 1 root root  392 1月  21 06:48 id_rsa.pub
-rw-r--r--. 1 root root  401 1月  21 06:05 known_hosts
  • 执行命令ssh-copy-id uar@web02将web01
    root生成的id_rsa.pub公钥内容充实到web02:/home/uar/.ssh/authorized_keys文件中,
    查看该公文

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwbY6ICbevXjm1m5yQCVn6z5DPHx9+Wq2CJOk0lxHC5iRdn9YpNE9D27MLyK5Cf9FHv2hLxvYKwmB+9qrZvhw0I6+QeLyYtPG98LvsbKYY9JbFC72NlE4UMYiDGVj5/PMtHosViSCfAiTf3OH07Rg91o4+qFVrs8UKgOwtNUwQMCHkAdLJz6UibPvvv3oPKjVbo0qeUOfsmZ2TOIcbJdWBlighet3yP8gjylhKfgdPVcHo4dY7WoVAZ+3qGZjmXvp4oIoEpMAPNr8ksu7yxeYyjmREzxpSdACmFDC6h5U8DtjksZaC1uICGQdPtu48pQvoDY6uT3XkkDdco/KYBza+Q== root@web01
  • 当执行ssh uar@web02时,
    web02会用web02:/home/uar/.ssh/authorized_keys文件中保存的web01的公钥去加密一个无限制数,
    传递给web01, 然后web01使用私钥解密, 再传递给web02, web02比对相同,
    就分明客户端可信, 就足以创造连接

  • 不应用ssh-copy-id怎么样促成?
    首先将id_rsa.pub复制到web02:/root目录中

[root@web01 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts

[root@web01 .ssh]# scp id_rsa.pub web02:/root/id_rsa_web01
root@web02's password: 
id_rsa.pub                                                                                      100%  392     0.4KB/s   00:00    

应用密码登陆到web02上

[root@web01 .ssh]# ssh web02
root@web02's password: 
Last login: Sun Jan 21 06:46:45 2018 from web01

将id_rsa_web01 文件增添 /home/uar/.ssh/authorized_keys

[root@web02 ~]# ls
1.php  anaconda-ks.cfg  id_rsa_web01  install.log  install.log.syslog

[root@web02 ~]# mkdir /home/uar/.ssh
mkdir: 无法创建目录"/home/uar/.ssh": 文件已存在
[root@web02 ~]# cat id_rsa_web01 >> /home/uar/.ssh/authorized_keys
[root@web02 ~]# exit
logout
Connection to web02 closed.

就足以一贯利用该命令切换成uar@web02

[root@web01 .ssh]# ssh uar@web02
Last login: Sun Jan 21 07:13:30 2018 from web01

将id_rsa_web01追加到其余用户家目录下.ssh/authorized_keys文件中,
就能够在web01上平素通过ssh命令登陆到web02上, 无需输入密码.

windows环境中选择xshell, 也足以生成密钥对 然后将公钥传到主机上,
就能够直接利用私钥举办登录, 如下

开拓xshell, 菜单 > 工具 > 新建密钥生成向导, 一路下一步,
然后将公钥保存到文件, 将公钥传到主机上,
使用cat id_rsa_2048.pub.window >> ./.ssh/authorized_keys将公钥追加到authorized_keys文件中,
xshell新建连接, 用户登录验证, 选取Public key, 用户密钥,
采用刚刚生成的密私钥, 保存后, 就能够不行使密码进行登录

上边开头伊始操作。

SSH config

  1. config为了便利大家管理几个ssh
  2. config存放的路子:~/.ssh/config
  3. config配置语法
  4. 关键字:
Host 别名
HostName 主机名
Port 端口
User 用户名
IdentityFile 密钥文件的路径
  1. 实际的操作

    • 第三利用ssh root@192.168.2.20登陆,然后cd ~/.ssh/
    • 那儿会发现没有那个config这些文件
    • 创立三个config文件:touch config
    • vim config进入那些文件,输入i,进入编辑方式,如图,然后按esc,输入:wq保存退出

    澳门金沙国际 22

    • 那时输入:ssh imooc
      就足以长足链接了,当然了,在配置文件中能够输入不一致的外号,那样多的话就方便管理了

2.尝试步骤

SSH安全免密码登陆:ssh key

  1. ssh key使用非对称加密方法变通公钥和私钥
  2. 私钥存放的职位在本地 ~/.ssh目录
  3. 公钥能够对伯公开放,放在服务器的~/.ssh/authorized_keys
  4. Linux平台生成ssh key
    • ssh-keygen -t rsa
  5. Win
    • 在xshell中,工具–新建用户密码生成向导–下一步
    • 到输入密钥名称这一个得记住imocc_linux,然后上面包车型客车密码能够输入也能够不输入
    • 另存为文件就能够
    • 接下来必要把转变的那些的公钥放到服务器上,进入 cd ~/.ssh/
    • 意识并未尤其文件,这个时候新建一个 touch authorized_keys文件
    • 用vim打开,把转变的公钥复制进来就能够了,然后保留退出
    • 以此时候在xshell中新建多少个对话就足避防密码登陆了,如图:
      澳门金沙国际 23
  6. Linux

    • 首先cd ~/.ssh/
    • 开班转移ssh-keygen -t rsa,此时输入文件的名字,imooc_rsa,那一个得记住,然后下边包车型地铁密码能够输入也得以不输入
    • 那时ls查看一下就足以见到,如图:
      澳门金沙国际 24

    • 此时用cat imooc_rsa.pub探望公钥,把这些复制下来

    • 抑或放入到touch authorized_keys文本中,此时以此文件中曾经有连个公钥了
    • 下一场把私钥插足到地头空间中ssh-add ~/.ssh/imooc_rsa

万一你已经通过ssh工具登陆上了linux终端。

SSH安全端口

  1. 怎么样改变SSH服务端口,修改/etc/ssh/sshd_config安顿就可以了
  2. 修改Port对应的值就能够了,如图:
    澳门金沙国际 25

  3. 服务重启:service sshd restart

(1)生成公钥和私钥

ssh-keygen -t rsa

Enter file in which to save the key (/root/.ssh/id_rsa):
##平昔回车使用私下认可路径

Created directory ‘/root/.ssh’.

Enter passphrase (empty for no passphrase): ##输入密码

Enter same passphrase again: ##双重密码

在/root/.ssh/目录下会转变多个文本,id_rsa为私钥,id_rsa.pub为公钥。私钥自身下载到本地电脑得当保存,公钥则足以随意公开。

(2)下载私钥到windows

sz /root/.ssh/id_rsa

固然没有请安装软件包lrzsz(yum install -y lrzsz)

(3)导入公钥

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

(4)更改SSH配置文件

修改SSH 的配置文件/etc/ssh/sshd_config,找到上面3行:

#RSAAuthentication yes

#PubkeyAuthentication yes

#AuthorizedKeysFile .ssh/authorized_keys

将前方的#去掉后保存。重启SSH 服务,运维命令:systemctl restart sshd

(5)xshell配置(看图)

1.新建贰个对话

澳门金沙国际 26

2.摘取身份验证格局

澳门金沙国际 27

3.导入私钥

澳门金沙国际 28

4.输入本人设定的密码

澳门金沙国际 29

5.规定用户密钥

澳门金沙国际 30

6.输入密码

澳门金沙国际 31

7.取舍相应的对话

澳门金沙国际 32

8.成功登陆

澳门金沙国际 33

(6)关闭SSH密码登陆

修改SSH的安插文件/etc/ssh/sshd_config,找到上面1 行:

PasswordAuthentication yes

修改为:

PasswordAuthentication no

重启SSH服务,并运转命令:

systemctl restart sshd

下边关于SSH相关的稿子您也可能喜欢,不妨参考下:

Ubuntu 下安顿 SSH服务全经过及难点消除
http://www.linuxidc.com/Linux/2011-09/42775.htm

Ubuntu 14.04 下安装萨姆ba 及SSH 服务端的主意
http://www.linuxidc.com/Linux/2015-01/111971.htm

集群环境SSH免密码登录设置 
http://www.linuxidc.com/Linux/2017-03/141296.htm

进步Ubuntu的SSH登陆认证速度的不二法门
http://www.linuxidc.com/Linux/2014-09/106810.htm

远程SSH连接服务与中央排错 
http://www.linuxidc.com/Linux/2017-05/143738.htm

使用SSH公钥密钥自动登陆Linux服务器
http://www.linuxidc.com/Linux/2017-02/140642.htm

开启SSH服务让Android手机远程访问
Ubuntu 14.04 
http://www.linuxidc.com/Linux/2014-09/106809.htm

SSH非交互式密码授权远程执行脚本 
http://www.linuxidc.com/Linux/2017-04/143180.htm

在 Linux 中为非 SSH 用户配置 SFTP 环境
http://www.linuxidc.com/Linux/2014-08/105865.htm

Linux上落到实处SSH免密码登陆远程服务器 
http://www.linuxidc.com/Linux/2017-05/144165.htm

正文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144997.htm

澳门金沙国际 34

相关文章