overview
ssh – secure shell,提供安全的远程登录
搭建 Linux 开发环境中,ssh 的服务的安装是其中必不可少的一步
ssh 方便一个开发小组中人员登录一台服务器,从事代码的编写、编译、运行
ssh 是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全
SSH有客户端 openssh-client 和 openssh-server 服务端
常用命令
# 查看 ssh 服务是否安装
dpkg -l | grep ssh
# 更新软件源
sudo apt update
# 安装 ssh 服务
sudo apt install openssh-server openssh-client
# 查看 sshd 服务是否开启
ps -e | grep ssh
# 启动 ssh 服务
sudo /etc/init.d/ssh start
# 默认是不允许 root 远程登录的,可以再配置文件开启
# 找到 PermitRootLogin without-password 修改为 PermitRootLogin yes
sudo vim /etc/ssh/sshd_config
# 重启 ssh 服务
service ssh restart
SSH 配置
通过修改 openssh 的配置文件 sshd_config 可以自定义需求
/etc/ssh/sshd_config
可以将 远程连接软件自动生成的 ssh 公钥给予一份服务器,然后可以实现免密登录
配置 SSH 免密登陆,首先在每台服务器生成密钥对后,即每台机器上都执行 ssh-keygen –t rsa 需要输入密码的地方直接按 Enter 回车键,这样就采用 RSA加密算法生成了公钥秘钥在当前隐藏文件夹.ssh 下。然后在每台服务器上执行 sshcopy-id命令,将公钥复制到其它两台服务器上即可,该命令可以自动将公钥添加到名为 authorized_keys的文件中,在每台服务器都执行完以上步骤后就可以实现多台服务器相互无密码登陆了。
# 采用 RSA 加密算法生成公钥秘钥,需要输入密码的地方全部直接回车
# 生成的公钥在当前 .ssh 文件夹下
ssh-keygen -t rsa
# 服务器之间直接使用命令进行公钥拷贝
ssh-copy-id -i ~/.ssh/id_rsa.pub 当前主机ip或者主机名(主机名需要与主机ip进行映射)@需要免密登录的主机ip或者主机名
# 如果是远程登录软件生成的公钥,就需要将公钥文件内容上传到服务器的 authorized_keys 文件中
关于 Linux 集群服务器之间的免密登录,请参考笔记《Hadoop分布式环境搭建》
配置文件的内容
- 常见 SSH 服务器监听
- Port 22 //监听的端口为22
- Protocol 2 //使用SSH V2协议
- ListenAdderss 0.0.0.0 //监听的地址为所有地址
- UseDNS no //禁止DNS反向解析
- 常见用户登录控制
- PermitRootLogin no //禁止root用户登录
- PermitEmptyPasswords no //禁止空密码用户登录
- LoginGraceTime 2m //登录验证时间为2分钟
- MaxAuthTries 6 //最大重试次数为6
- AllowUsers user //只允许user用户登录,与DenyUsers选项相反
- 常见登录验证方式
- PasswordAuthentication yes //启用密码验证
- PubkeyAuthentication yes //启用秘钥验证
- AuthorsizedKeysFile .ssh/authorized_keys //指定公钥数据库文件