SSH


文章目录

  • SSH
  • SSH密钥对
  • ssh config
  • 端口转发
  • 关闭密码登录
  • 远程命令
  • SFTP命令
  • 新建SFTP用户
  • 问题


SSH密钥对

服务器
输入命令:ssh-keygen -t rsa 输入需要生成的目录,如:.ssh/my_id_rsa
生成文件:id_rsa id_rsa.pub

将公钥id_rsa.pub复制到服务器~/.ssh/下的authorized_keys文件(没有新建)

服务器上重启ssh服务 service sshd restart

文件授权:
chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys

客户端
将id_rsa放入到~/.ssh文件夹下
chmod 600 *.rsa

注:Centos错误日志在:/var/log/secure
密钥可以在服务器或者客户端生成,再通过ssh-copy-id -i id_rsa.pub root@192.168.1.199直接将密钥拷贝到对方

  • 公钥加密,私钥解密。—用于加解密
  • 私钥签名,公钥验签。—用于签名

ssh config

在.ssh/config下添加(没有需要新建,注意权限)

Host dev
  Hostname 192.168.1.200
  User root
  IdentityFile ~/.ssh/my_id_rsa
  Port 22

使用ssh [-F ~/.ssh/config] dev快速登录

复制文件

scp -rp /path/file root@ip:/path # 上传
scp -rp root@ip:path/file /path # 下载

端口转发

ssh -i ~/.ssh/pay_id_rsa -L 2000:127.0.0.1:5432 pay@106.15.186.141 -p 2339

-i 指定私钥文件
-p 指定远程ssh端口
-L 指定地址 本地端口:远程内网地址:远程内网IP
login-name@remote-ip

本地连接:localhost:2000(本地端口)

如果配置了config,则可以使用 ssh -L 2000:127.0.0.1:3307 host

关闭密码登录

vi /etc/ssh/sshd_config

#禁用密码验证
PasswordAuthentication no
#启用密钥验证
RSAAuthentication yes
PubkeyAuthentication yes
#指定公钥数据库文件
AuthorizedKeysFile  .ssh/authorized_keys

重启: service sshd restart 重启SSH服务前建议多保留一个会话以防不测

远程命令

ssh dev "echo hello"

多个命令使用;隔开
ssh dev "echo hello;echo world"

SFTP命令

sftp user@ip # 登录
help # 帮助
pwd & lpwd # pwd是看服务器的目录;lpwd是看linux本地目录
ls @ lls #  ls是看服务器下当前目录下的东东;lls是看本地目录下的东东
put file # 本地文件上传到服务器
get file # 从服务器下载到本地
!command # 在本地执行命令
exit&quit # 退出

新建SFTP用户

vi /etc/ssh/sshd_config

Subsystem       sftp    internal-sftp
Match Group sftp
    ChrootDirectory /home/data/sftp/%u
    ForceCommand    internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

systemctl restart sshd

groupadd sftp # 新建组
useradd -g sftp -s /bin/false webui # 新建用户webui
passwd webui
mkdir -p /home/data/sftp/webui # 为用户建立主目录
usermod -d /home/data/sftp/webui webui # 修改用户登入目录
chown root:sftp /home/data/sftp/webui # 修改目录所属用户和组
chmod 755 /home/data/sftp/webui # 主目录授权

mkdir /home/data/sftp/webui/main # 为用户建立子目录
chown webui:sftp /home/data/sftp/webui/main # 修改子目录所属用户和组
chmod 755 /home/data/sftp/webui/main # 子目录授权

注意:
1.由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2.由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限

问题

  1. 连接过慢
    /etc/ssh/sshd_config
GSSAPIAuthentication  no
UseDNS no