Linux - SSH

一、SSH客户端安装

客户端安装SSH工具

Windows客户端

安装Putty、XShell、SecureCRT

Linux客户端

yum install openssh-clients

macOS客户端

默认已经安装了SSH客户端

二、SSH服务器端安装

服务端安装SSH服务
  1. 安装SSH:

    yum install openssh-server
  2. 启动SSH

    systemctl start(或restart) sshd

    3.设置开机运行SSH

    systemctl enable sshd

    4.查看SSH状态

    systemctl status sshd

三、客户端通过SSH连接服务器

# 连接远程服务器
ssh [email protected]


四、用config文件配置SSH

config文件可以配置SSH,方便批量管理多个SSH连接

全局config文件

查看config文件的使用手册
# SSH服务端config文件的使用手册
man sshd_config

# SSH客户端config文件的使用手册
man ssh_config

1. 客户端config文件的常用配置参数
客户端config参数 作用
Host 别名
HostName 远程主机名(或IP地址)
Port 连接到远程主机的端口
User 用户名

配置如下 ~/.ssh/config

Host guoguo
    HostName 172.20.10.2
    Port 22
    User root

设置完成后我们就可以简化登录了,如下:

ssh guoguo

创建局部config文件

# 一般会把~/.ssh/config的权限修改为600
chmod 600 ~/.ssh/config
2. 服务端全局config文件的常用配置参数
服务端config参数 作用 默认
Port sshd服务端口号 22
PermitRootLogin 是否允许root用户身份登录 允许
PasswordAuthentication 是否允许密码验证登录 允许
PubkeyAuthentication 是否允许公钥验证登录 可以
PermitEmptyPasswords 是否允许空密码登录 默认不可以
# 如果用户的家目录下没有.ssh目录,使用如下命令生成.ssh目录
ssh localhost

总结:

  • SSH的config文件可以帮助我们配置SSH
  • config文件分为全局config文件和局部config文件
  • 全局的config文件会对所有的用户生效,谨慎使用
  • 修改全局的config文件后,重启sshd服务使之立即生效

五、SSH免密码登录

5.1 验证方法

  • 基于口令
  • 基于密钥

    客户机生成密钥对(公钥和私钥),把公钥上传到服务器
    并与服务器的公钥进行比较
    这种验证登录的方法更为安全,也被称为“公钥验证登录

5.2 公钥验证登录步骤

  1. 在客户机中成成密钥对(公私密钥对)
  2. 使用ssh-keygen生成密钥对。(默认使用RSA非对称加密算法)

    ssh-keygen
    # 等价于
    ssh-keygen -t rsa


    执行完后会在~./ssh目录下生成id_rsa和id_rsa.pub文件

  3. 将公钥上传到服务器 (默认会将公钥上传至服务器)

    ssh-copy-id [email protected]
    # 等价于
    ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

这下我们就可以使用如下命令直接登录服务器,不想需要密码验证。

ssh [email protected]

5.3. 公钥验证登录

ssh-copy-id会把客户机的公钥追加到服务器的一个文件authorized_keys中,
路径:~/.ssh/authorized_keys

5.4 设置SSH免密码后仍想使用密码登录

# 使用密码登录,禁用密钥登录
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no [email protected]

总结

  • 为了免去每次用SSH协议连接远程机器都要输入用户名和密码的麻烦
  • 我们可以创建一个用于验证身份的密钥对
  • 公钥需要上传并存储到远程机器上
  • 私钥存放在我们自己的电脑中
  • 之后我们的SSH连接就不再需要输入密码了

你可能感兴趣的:(Linux - SSH)