仅学习总结所用
ssh是什么
- SSH:Secure Shell 安全外壳协议
- 建立在应用层基础上的安全协议
- 可靠,专为远程登录回话和其它网络服务提供安全性的协议
- 有效防止远程管理过程中的信息泄露问题
- SSH客户端适用于多种平台
- SSH服务端几乎支持所有UNIX平台
服务器安装SSH服务
# yum install -y openssh-server #安装
# service sshd start #启动ssh服务
# ps -ef | grep ssh #查看进程是否启动
客户端安装SSH工具
# yum install -y openssh-clients
客户端连接SSH服务
# ssh [email protected]
输入yes 首次登录须确认服务器公钥的指纹,以防止中间人攻击
输入root用户密码
SSH config 详解
# cd ~/.ssh
# vim config
host "服务器别名"
HostName 服务器IP地址
User 服务器用户
Port 22
例:
host "hh"
HostName 192.168.40.123
User root
Port 22
# ssh hh 可快速连接服务器
如果有多个服务器,写多个host即可(一个host一台服务器)
RedHat中没有.ssh目录,需要新建,命令 mkdir -pm 700 .ssh
注:-p 如果目录已存在不会报错 -m指定权限码
SSH 安全免密码登录: ssh key
- ssh key 使用非对称加密方式生成 公钥 和 密钥
- 私钥存放在本地 ~/.ssh 目录
- 公钥可以对外开发,放在服务器的 ~/.ssh.authorized_keys
Windows平台生成ssh key
打开 Xshell 工具→用户密钥管理者→生成→一直下一步即可
Linux平台生成ssh key
# cd ~/.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:
27:99:17:53:ce:8c:41:04:6b:c3:4f:cc:e9:3e:63:88 [email protected]
The key's randomart image is:
......
注:ssh-keygen -f ~/.ssh/id_rsa -t rsa
ssh选项 | 参数意义 |
---|---|
b | 密钥位数,>=512,缺省1024 |
f | 密钥文件名 |
t | 密钥类型,rsa(默认) 或 dsa |
i | 导入 SSH/SECSH 格式的密钥 |
服务器配置authorized_keys
# vim ~/.ssh/authorized_keys
将客户端生成的公钥复制粘贴到authorized_keys
Linux平台可能还需执行命令 ssh-add 私钥文件
才可登录成功
SSH安全端口
- 端口安全指的是尽量避免服务器的远程连接 端口别不法分子知道,为此而改变默认服务器端口号的操作
- 修改 /etc/ssh/sshd_config 配置改变SSH服务端口
# vim /etc/ssh/sshd_config
找到 #Port 22 去掉注释#或加一个端口 Port 1234,这样sshd服务就会监听这两个端口
当然,一般都不会修改端口,我们只需要保证密码足够复杂或使用 ssh key 的方式登录,基本上就可以保证安全了