Openssh远程连接服务器
什么是 Openssh?
- OpenSSH是目前最流行的远程系统登录或文件传输应用
主要功能
- OpenSSH提供了服务端后台程序(sshd)和客户端工具(ssh), 用来加密客户端与服务端通信中的数据和传输过程中的文件
关于 SSH(Secure Shell)版本
- SSH1是基于 CRC(Cyclic Redundancy Check 循环冗余校验)来做校验数据传输, 后来发现这种编码技术有缺陷
- SSH2增加了一个确认联机正确性的 DH(Diffie-Hellman 密钥交换协议/算法)机制, 每次数据的传输, 服务都会检查相关数据来源的正确性
SSH2的工作机制
- 注:OpenSSH是随机生成公私密钥的
- ssh客户端请求到服务器
- OpenSSH服务器的 sshd将会发送一个公钥
- ssh客户端将会提示是否接收服务器端发送的公钥, 同时 ssh客户端制作密钥对回传给服务器, 因而双方都拥有对方的密钥, 能够解密双方交互的加密数据
- SSH只有创建连接阶段和身份认证握手阶段是使用了非对称加密, 以外的数据传输都是对称密钥来加密的
基本使用
服务端 sshd
Ubuntu安装&启动
- apt-get install openssh-server
- /etc/init.d/ssh [start|stop|restart]
CentOS更新&启动
- yum update openssh
- service sshd [start|stop|restart]
查看 sshd是否在进程中
- ps -ef|grep ssh
root 1013 1 0 Feb26 ? 00:23:01 /usr/sbin/sshd
root 13103 1013 0 07:10 ? 00:00:00 sshd: root@pts/0
root 13197 13116 0 07:10 pts/0 00:00:00 grep ssh
- /etc/init.d/sshd status
openssh-daemon (pid 1013) is running...
查看 ssh版本
- ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
sshd常用配置
- vim /etc/ssh/sshd_config
Port 22 #端口
PasswordAuthentication yes # ssh的默认认证方式 [yes/no]
PermitRootLogin yes # root用户登陆权限 [yes/no]
AllowUsers testuser # 用户白名单, 允许 testuser登陆, 多个用户使用空格隔开
AllowGroups # 允许登陆的组白名单
DenyUsers testuser2 # 用户黑名单, 当前不允许 testuser2登陆
DenyGroups # 不允许登陆的组黑名单
客户端 ssh登录
# 使用默认端口 22登录
ssh [email protected]
# 指定自定义端口登录
ssh -p 22222 [email protected]
Password: 输入密码
Last login: Fri Nov 15 23:38:41 2019 from x.x.x.x
Welcome to aliyun Elastic Compute Service!
生成 RSA密钥, 用于免密登录
- ssh-keygen -t rsa
- cd /root/.ssh 默认目录
默认生成密钥&公钥
- id_rsa 密钥
- id_dsa.pub 公钥
参数 | 说明 |
---|---|
-t | [rsa/dsa] 密钥类型, 建议使用 rsa |
-b | [1024/2048/4096…] 密钥长度 |
-f | /PATH/TO/OUTPUT_KEYFILE 指定将要存储的路径及密钥文件 文件名必须为 id_rsa |
-P | ‘’ 指定密钥密码, ''表示空密码 |
如果您觉得有帮助,欢迎点赞哦 ~ 谢谢!!