美文网首页
Linux SSH日常使用总结

Linux SSH日常使用总结

作者: KwokKwok | 来源:发表于2018-06-26 15:18 被阅读9次

    内容提要

    1. 基本的SSH密码登录、SCP文件复制
    2. SSH密钥登录,多台电脑使用相同的密钥;以及使用别名替代user@host的形式
    3. SSH登录配置文件修改,实现SSH登录加速、禁止密码登录、禁止root用户登录等。
    4. 遇到的问题记录

    基础操作

    登录与文件复制

    1. SSH密码登录:
      ssh root@111.111.111.111 #然后根据提示输入密码即可
      
    2. SSH复制文件(已有会覆盖):
      # scp from to,复制文件夹使用 scp -r
      # 双向的
      
      # 比如使用服务器110.110.110.110上的root账户将本地当前目录的jpg复制到服务器的opt目录下
      scp interesting.jpg root@110.110.110.110:/opt
      
      # 比如使用服务器110.110.110.110上的root账户将服务器opt目录复制到本地当前目录的files目录下
      scp -r root@110.110.110.110:/opt files
      

    登录进阶

    1. 使用密钥免密登录
    2. 多台电脑使用相同的密钥
    3. 使用别名代替臭长臭长的user@host
    1. SSH免密登录:
      ssh-keygen # 会在本机~/.ssh目录下生成密钥对
      ssh-copy-id user@host # 将本地的密钥添加到服务器对应用户的可信登录列表
      # 按提示输入密码
      
      # 成功后使用对应的服务器账户,登录、复制就都不需要密码了
      ssh user@host
      
      # 如果仍需要密码,一般是.ssh文件夹及其中文件的权限有问题,尝试下边的权限策略
      
      无法免密登录,可尝试修改权限:
      cd ~
      chmod 700 .ssh
      cd .ssh
      chmod 600 authorized_keys
      chmod 600 id_rsa
      chmod 644 id_rsa.pub
      
    2. 多台电脑使用相同的密钥
      • 将通过验证的密钥文件(上一步生成的密钥对,id_rsa和id_rsa.pub)备份起来
      • 需要登录服务器的机器,使用备份的文件替换掉自己~/.ssh目录下的对应文件
      • 权限无误,即可成功登录。权限问题参考上一条。
    3. 使用别名替代user@host
      cd ~/.ssh
      vim config
      
      为了演示,这里添加两个账户:
      Host ali # 别名
      HostName 123.123.123.123 # 主机IP
      User root # 用户名
      IdentitiesOnly yes # 只使用这里的ssh key,设置这个就不用设置下边的路径了
      IdentityFile ~/.ssh/id_rsa # 设置ssh key的路径,有些人需要设置这个
      
      Host tencent # 别名
      HostName 123.123.123.124 # 主机IP
      User root # 用户名
      IdentitiesOnly yes
      IdentityFile ~/.ssh/id_rsa
      
      之后就可以:
      ssh ali # 参考上边可知,ali就相当于root@123.123.123.123
      scp file ali:/opt # 可以用于文件复制
      

    登录配置项修改

    可实现:禁止密码登录(只使用密钥登录)、禁止root账户登录(也算一种安全策略)、加速SSH登陆(关掉DNS和GSSAPI查询

    1. 修改服务器上的/etc/ssh/sshd_config文件
      vim /etc/ssh/sshd_config
      
    2. 常用参数配置:
      • GSSAPIAuthenticationUseDNS,设置为no可在一定程度上加速SSH登录,原理自查。
      • PermitRootLogin,是否允许root用户登录,自行添加一个账户替代root账户,然后可以关闭root用户登录,提高安全性。(比如有很多人会扫描IP端尝试登录root账户。
      • PubkeyAuthentication,是否允许密钥登录,这个当然yes了,最好是只使用密钥登录。
      • PasswordAuthentication,是否允许密码登录,设置了密钥登录后最好关闭密码登录。
    3. 保存修改,重启sshd服务生效
      systemctl restart sshd
      

    问题及解决方案

    1. Bad owner or permissions on /root/.ssh/config(详细解释参见ServerFault相关问题讨论)
      chmod 600 ~/.ssh/config
      

    相关文章

      网友评论

          本文标题:Linux SSH日常使用总结

          本文链接:https://www.haomeiwen.com/subject/clhmyftx.html