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