SSH使用小技巧

更改 root 密码

password更改为所需的密码

  1. 修改密码

    Terminal window
    echo root:`password` |sudo chpasswd root
  2. 开启 root 登录

    Terminal window
    sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
  3. 开启密码登录

    Terminal window
    sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
  4. 重启 ssh 服务

    Terminal window
    systemctl restart sshd.service

配置使用密钥登录

  1. 生成密钥和公钥,请执行以下命令:

    Terminal window
    ssh-keygen -t rsa -b 4096

    连续执行回车即可生成密钥和公钥对。如果需要设置密码,请在密码提示处输入密码。

  2. 安装 ssh 公钥

    Terminal window
    cp "$HOME/.ssh/id_rsa.pub" "$HOME/.ssh/authorized_keys"
  3. 设置公钥权限

    Terminal window
    chmod 600 "$HOME/.ssh/authorized_keys"
    chmod 700 "$HOME/.ssh"
  4. ssh 配置文件

    1. 开启密钥登录

      Terminal window
      sudo sed -i 's/^#\?PubkeyAuthentication.*/PubkeyAuthentication yes/g' /etc/ssh/sshd_config
    2. 关闭密码登录

      Terminal window
      sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/g' /etc/ssh/sshd_config
  5. 重启 sshd 服务

    Terminal window
    systemctl restart sshd.service

ssh 登录后闲置时间过长而断开连接

Terminal window
echo "ServerAliveInterval 60" >> "$HOME/.ssh/config"

ssh 客户端会每隔一段 60s,自动与 ssh 服务器通信一次

存放 ssh 密钥密码

启动ssh-agent

Linux

Terminal window
ssh-agent bash

Windows

  1. 打开服务
  2. OpenSSH Authentication Agent服务启动
  3. 设置自启动

添加默认的私钥

Terminal window
ssh-add

添加私钥时,会要求输入密码。以后,在这个对话里面再使用密钥时,就不需要输入私钥的密码了,因为私钥已经加载到内存里面了。

使用命令将本地公钥发送给服务端

Terminal window
ssh-copy-id username@hostname