服务器
输入命令: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 ~/.ssh
chmod 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下添加(没有需要新建,注意权限)
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 user@ip # 登录
help # 帮助
pwd & lpwd # pwd是看服务器的目录;lpwd是看linux本地目录
ls @ lls # ls是看服务器下当前目录下的东东;lls是看本地目录下的东东
put file # 本地文件上传到服务器
get file # 从服务器下载到本地
!command # 在本地执行命令
exit&quit # 退出
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指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限
连接过慢
/etc/ssh/sshd_config
GSSAPIAuthentication no
UseDNS no