Project

General

Profile

Ssh

  1. known_hosts和authorized_keys区别
    1)known_hosts 文件
    作用:存储已知主机的公钥,用于验证连接的服务器身份。
    功能:防止中间人攻击,确保用户连接到正确的服务器。每次连接时,SSH 客户端会检查服务器的公钥是否与 known_hosts 中的匹配。
    位置:通常位于用户主目录下的 .ssh 文件夹中,路径为 ~/.ssh/known_hosts。
    2)免密登录
    作用:允许用户在连接到 SSH 服务器时无需输入密码。
    功能:通过使用 SSH 密钥对(公钥和私钥)来实现。用户将公钥放置在目标服务器的 ~/.ssh/authorized_keys 文件中,而私钥保留在本地计算机上。连接时,SSH 客户端使用私钥进行身份验证,服务器验证公钥。
    安全性:免密登录比使用密码更安全,因为私钥不会在网络上发送,并且可以使用更复杂的密钥来增强安全性。
    
  2. 设置免密
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 
    -t rsa 指定密钥类型为 RSA。
    -b 4096 指定密钥长度为 4096 位。
    -C "your_email@example.com" 是一个注释,通常用来标识密钥。
    
    ssh-copy-id username@remote_host
    
    如果 ~/.ssh/id_rsa 文件已经存在可以使用现有的,也可以生成新的:
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/id_rsa_new
    ssh-copy-id -i ~/.ssh/id_rsa_new.pub username@remote_host
    
  3. 远程执行命令
    sshpass -p "user密码" ssh user@1.2.3.4 'echo "user密码"|sudo -S ls /root'