# ssh 常用命令

  • ssh -p 22 vagrant@192.168.10.10 链接到端口为 22 的服务器
  • service ssh restart ubuntu 系统重启远程主机的 ssh 服务
  • scp -P 22 vagrant@192.168.10.10:/root/1.log /g/jstlog 把远程的文件复制到本地
  • scp -P 22 /g/1.log vagrant@192.168.10.10:/root/ 把本地的文件复制到远程主机上
  • scp -r -P 22 vagrant@192.168.10.10:/root/test /g/test 把远程的目录复制到本地
  • scp -r -P 22 /g/test vagrant@192.168.10.10:/root/test 把本地的目录复制到远程主机上
  • ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 vagrant@192.168.10.10 把本地公钥加入远程主机 authorized_keys 中

# ssh 免密登录配置

  • ssh-keygen -t rsa -C "123@qq.com" 创建 ssh
  • ssh homestead 配置免密后,可以直接根据定义的链接名登录
  • ssh homestead "ls -a" SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作。
  • ~/.ssh/id_rsa 私钥位置
  • ~/.ssh/id_rsa.pub 公钥位置,将公钥复制到对方机器 ~/.ssh/authorized_keys 中,就可以访问这个服务器
  • ~/.ssh/authorized_keys 为了让两个 linux 机器之间使用 ssh 不需要用户名和密码。采用了数字签名RSA或者DSA来完成这个操作
  • ~/.ssh/known_hsots ssh 会把你每个你访问过计算机的公钥(public key)都记录在 ~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH 会核对公钥。如果公钥不同,OpenSSH 会发出警告,避免你受到 DNS Hijack 之类的攻击。
  • ~/.ssh/config 用户配置文件,可以配置免密登录,具体配置如下。
  • cat /etc/ssh/sshd_config 查看 PermitRootLogin 配置是否允许 root 用户登录,no 禁止 | yes 允许,修改重启命令 service sshd restart
  • ssh -p 22 -v root@ip 加 -v 调试,卡在了 debug1: pledge: network 的话使用 systemctl restart systemd-logind
  • ssh-keygen -f "/root/.ssh/known_hosts" -R "[ip]:port" 根据连接名加端口,删除存在记录
Host homestead   // 定义链接名称
HostName 192.168.10.10  // 服务器 IP
User root  // 登录账户
Port 22   // 链接端口
IdentityFile ~/.ssh/id_rsa  // 自己的 ssh 私钥