ssh简介和使用

一、简介

1. ssh(Secure Shell)是一个安全网络协议

2.用于远程连接linux服务器

3. 传输的数据是RSA非对称加密和压缩的

 

二、安装

1. ssh分为服务器和客户端,linux系统默认已经安装

2. 登录远程机器需要安装客户端 

sudo apt-get install openssh-client

3. 开放本机ssh服务需要安装服务器

sudo apt-get install openssh-server

 

三、远程登录

1. 口令登录

a. 基本连接命令

ssh abc@172.1.1.1 连接到服务器默认端口22

b. 指定端口号连接,因为公网上的机器会被蠕虫搜索,然后用密码字典破解密码,一般都会把端口号改到30000以上,比如36022

ssh -p 1234 abc@172.1.1.1 连接到服务器端口1234

2. 公钥登录

a. 口令登录每次都要输入密码,很不方便

b. 使用秘钥对进行登录,可以不需要输入密码,安全性也更好

c. 配置步骤:

在本机生成秘钥对 ssh-keygen -t rsa,生成一个文件夹.ssh,文件夹下包含私钥id_rsa和公钥id_rsa.pub

将公钥复制到远程主机,ssh-copy-id aaa@192.168.0.1,ssh-copy-id会把公钥写入远程主机的.ssh/authorized_key文件中

3. 退出远程登录 Ctrl+D

4. 通过config配置登录,不用输入用户名和IP地址,更加方便

a. 在.ssh目录下,新建文件config

b. 配置

Host abc // 服务器别名
    HostName 172.168.1.1 // 服务器IP地址 
    User mawr  // 用户名
    Port 22   // 端口号
    IdentityFile ~/.ssh/id_rsa // 私钥文件
    ForwardAgent yes 
    ServerAliveInterval 60 // 保持连接的时间,避免长时间不操作断开连接
    ControlMaster auto
    ControlPath /tmp/ssh_mux_%h_%p_%r
    ControlPersist 72h

5. 跳过跳板机,直接连接目标服务器

a. 一般公司是不会让直接连接线上服务器的,需要先连接跳板机,再连接服务器

b. 每次连接跳板机很不方便,可以通过配置直接登录目标服务器

    Host server-1 server-2 server-3  // 目标服务器列表
    HostName %h // 变量,表示实际IP地址是上面目标服务器的某一个
    User dev  // 用户名
    ProxyCommand ssh jumper nc %h %p // 先登录跳板机,再登录服务器, 也可以ProxyCommand ssh jumper -W %h:%p
    IdentityFile ~/.ssh/id_rsa // 私钥

 

四、原理

1. 服务器启动的时候,自己产生一个公钥

2. 客户端发送连接请求到服务器,服务器检查IP和数据,如果合法,发送公钥给客户端

3. 客户端使用公钥和本地的私钥结合成秘钥对,发送给服务器端,建立连接,发送数据

 

五、端口转发

1. ssh -D

2. ssh -L

 

 

参考:

https://blog.csdn.net/li528405176/article/details/82810342

https://www.cnblogs.com/ftl1012/p/ssh.html

http://blog.shrp.me/How-To-Configure-SSH-Client.html

 

posted @ 2019-10-09 10:32  牧云文仔  阅读(779)  评论(0编辑  收藏  举报