ssh远程登录Linux

SSH远程登录

SSH(Secure Shell)使用加密方式传输数据,相比其他使用明文传输的远程登录方式具有更高的安全性。

ssh允许使用两种验证方式登录:密码验证密钥验证

系统版本:Ubuntu 18.04.2LTS

openssh-server 版本:1:7.6p1-4ubuntu0.3

密码验证

  • 服务端配置(全局配置文件:/etc/ssh/sshd_config)

    1. 安装ssh:sudo apt install openssh-server

    2. 更改全局配置文件sshd_confignano /etc/ssh/sshd_config

      • 端口:去掉 Port 22 一项前的# ,若使用其他端口,把 22 更改为相应端口。

      • 密码验证:去掉 PasswordAuthentication yes 一项前的# ,并确保此项是yes而不是no

      • 其他选项(可选):

        • ListenAddress 0.0.0.0:定义服务端绑定的ip,默认绑定所有可用ip

        • PermitRootLogin prohibit-password:允许root用户登录

    3. 检查sshd服务是否已启动:systemctl status sshd ,若未启动则:systemctl start sshd

    4. 开机启动:systemctl enable sshd

    5. 查看主机地址:ip address ,找到相应的网卡,记下inet 后的ip

  • 客户端配置(配置文件:~/.ssh/config):

    1. 连接至服务器:ssh -p port user@server-addressserver-address即上面记下的ip,- p 选项用于指定端口

    2. 客户端可以在配置文件中存储常用选项和常用主机:

      ~/.ssh/config
      # global options
      User user

      # host-specific options
      Host myserver
        HostName server-address
        Port     port

      进行了如上的配置后,以下命令是等效的

      $ ssh -p port user@server-address
      $ ssh myserver

密钥验证

  • 服务端配置

    1. 安装ssh:sudo apt install openssh-server

    2. 更改全局配置文件sshd_confignano /etc/ssh/sshd_config

      • 端口:去掉 Port 22 一项前的# ,若使用其他端口,把 22 更改为相应端口。

      • 公钥验证:去掉 PubkeyAuthentication yes 一项前的# ,并确保此项是yes而不是no

      • 启用公钥文件:去掉 AuthorizedKeysFile 一项前的#

    3. 创建公钥文件:touch ~/.ssh/authorized_keys,注意检查该文件的权限是否为600。

    4. 其余步骤同上。

  • 客户端配置

    1. 生成密钥:ssh-keygen -t rsa

      注:当要求输入文件名时(Enter file in which to save the key)请使用绝对路径,否则密钥将生成在当前目录,若使用默认路径则直接回车

    2. 到相应文件夹找到xxx.pub, xxx两个文件,xxx放置于~/.ssh/文件夹下,xxx.pub上传到服务端,并将其中内容追加到服务端的公钥文件中,(永远只把公钥交给服务器)

      如:cat xxx.pub >> ~/.ssh/authorized_keys

    3. 使用ssh -p port user@server-address命令登录即可

关于WSL的补充:
  • 端口一定要更改,因为22端口与Windows的默认ssh服务冲突,需更改为其他端口

参考链接

 

posted @ 2019-07-06 16:54  九蓑烟雨任平生  阅读(3079)  评论(0编辑  收藏  举报