ssh远程登录
不指定用户登录:ssh 192.168.0.11
指定用户登录:ssh -l root 192.168.0.11
ssh root@192.168.0.11
ssh登录指定端口:ssh -p 12333 192.168.0.11
ssh -l root -p 12333 192.168.0.11
ssh -p 12333 root@192.168.0.11
另外修改配置文件/etc/ssh/sshd_config,可以改ssh登录端口和禁止root登录。改端口可以防止被端口扫描。
ssh-keygen 命令用于为 ssh 生成、管理和转换认证密钥,它支持 RSA 和 DSA 两种密钥认证 。
-b:指定密钥长度;
-e:读取openssh的私钥或者公钥文件;
-C:添加注释;
-f:指定用来保存密钥的文件名;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-N:提供一个新密语;
-P:提供(旧)密语;
-q:静默模式;
-t:指定要创建的密钥类型,默认为 rsa;
例如:ssh-keygen -t rsa -C "tongyishu@qq.com"
一直回车,会在用户的根目录下生成 .ssh 文件夹(~/.ssh),文件夹包含以下四个文件:
id_rsa # 生成的私钥
id_rsa.pub # 生成的公钥
known_hosts # 记录已经访问过计算机的公钥,下次访问相同计算机时,openssh 会核对公钥。如果公钥不同, SSH会发出警告。
authorized_keys # 用于保存所有允许以当前用户身份登录的 ssh 客户端用户的公钥内容
ssh-copy-id
免密登录远程主机:将本地生成的 id_rsa.pub 内容追加到远程主机的 authorized_keys 文件中即可。
而 ssh-copy-id 正是用于此功能,ssh-copy-id 命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,也会给远程主机的用户主目录(home)、(~/.ssh)和(~/.ssh/authorized_keys)设置合适的权限。
例如:ssh-copy-id -i ~/.ssh/id_rsa.pub root@100.94.56.120
其中 -i 用于指定公钥文件。