Linux SSH日常使用总结

2018-06-26  本文已影响9人  KwokKwok

内容提要

  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
    
上一篇 下一篇

猜你喜欢

热点阅读