SSH

本文详细介绍了SSH协议的用途、安装过程、客户端配置、多种登录方式(密码和密钥登录)、ssh-add的使用,以及scp、rsync、pssh等命令的详细用法。此外,还提到了SSH服务器的配置文件 `/etc/ssh/sshd_config` 对端口转发等功能的设置。
摘要由CSDN通过智能技术生成

SSH简介

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。虽然任何网络服务都可以通过SSH实现安全传输,SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。
SSH主要用来代替Telnet和非安全shell的替代品。

维基百科的介绍

SSH安装

openssh是SSH协议的实现。centos是默认安装

[root@localhost ~]# rpm -q openssh-server
openssh-server-7.4p1-21.el7.x86_64   # 是SSH的服务端sshd

一般都默认安装了客户端openssh-client 如果没有安装可以使用yum安装

SSH客户端

配置文件:/etc/ssh/ssh_config。一般不会做啥修改。

ssh语法格式:ssh [user@]host [COMMAND]

常用选项:
	-p port:远程服务器监听的端口、
	-b:指定连接的源ip
	-v:调式模式
	-C:压缩模式
	-X:支持x11转发
	-Y:支持信任X11转发
	-t:强制伪tty分配

示例:

[root@livedvd ~]# ssh root@192.168.199.123
The authenticity of host '192.168.199.123 (192.168.199.123)' can't be established.
RSA key fingerprint is b9:60:f8:df:bb:34:42:1a:f5:f1:e0:98:47:d7:f1:68.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.199.123' (RSA) to the list of known hosts.
root@192.168.199.123's password: 
Last login: Sat Jan  4 20:21:41 2020 from p7o91w0o03xbo0d.lan
#第一次连接时需要输入yes

当用户远程连接ssh服务器时,会复制ssh服务器/etc/ssh/ssh_host_rsa_key.pub文件中的公钥到客户机中的.ssh/known_hosts中。下次连接时将自动匹配相应私钥,不能匹配,将拒绝连接,如果换台机器和之前的地址一样。需要将.ssh下的known_hosts文件中的公钥删掉即可。

示例:

[root@localhost ~]# cat .ssh/known_hosts 
192.168.199.179 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAu5Zt0sXAgc6Y3o8DkHZnLHCI32D9YK2ih4/2u9atkuzKOZnGaV9Zjf5Q8+6gw+LK1m21ih9XQGl+LWQfHZGR0X5jdSR4Z9ehR1QsNHDphuVn1x1Rkk0lDSJx3jSRB64NQ/tQM/CgVTDXFwnShWWJEXsHJgphS61en/V3mP5G9NDJKlb+NnB0AbL4YIDnZXHjLWaFyWfo8ZFV4vN1+q5zIlFeHektglSmoMAEhylD9d2MuyPdFFbnOTDmhpa1hAwZgq9TC1XkIyPYAiDQ0CaFgVTnJ7B7rV1VdnCSDOftpJseFbVkYopjiyZ9B5mHdQVUXwLchzPuIIr6VeMWnfExXQ==
#这就是对方的公钥
#测试将一台新机器设置成179来让上边示例的机器连接
[root@localhost ~]# ssh 192.168.199.179
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:/7hPwkUvWML2wxewbU9/RXicm9DiCd/615H0tyxwWMc.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending RSA key in /root/.ssh/known_hosts:3
RSA host key for 192.168.199.179 has changed and you have requested strict checking.
Host key verification failed.
# 如果ip地址一样,机器变了,就会出现这种错误。可以直接将known_hosts文件中对应的地址公钥删除即可

SSH登录方式

密码登录

登录过程

  • 客户端向服务器发起ssh申请
  • 服务器向客户端发送一个公钥。
  • 客户端用公钥将口令进行加密。发送给服务器端。
  • 服务器用私钥解密之后,核对口令。一致。即可登录

密钥登录

密钥登录过程

  • 客户端首先生成一对密钥
  • 并将客户端的公钥拷贝到服务器端
  • 当客户端再次发送一个连接请求,包括ip、用户名。
  • 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的ip和用户,就会随机生成一个字符串,例如:acdf
  • 服务器端将使用客户端拷贝过来的公钥对字符串进行加密,然后发送给客户端
  • 得到服务器发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务器
  • 服务器端接收到客户端发送的字符串后,跟之前的字符串进行对比,如果一致,就允许免密登录。

示例:

1)在客户端生成密钥对,ssh-keygen命令生成。  -t指明算法,-f指定文件的文件名
[root@ssh-client ~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值