1、简介
OpenSSH是实现远程连接主机,并实现远程操作主机的一套SSH通信协议的实现,基于CS架构。
Linux上的客户端有ssh scp sftp
Linux的服务器端程序为 sshd
2、配置文件
客户端配置文件在/etc/ssh/ssh_config
服务端配置文件在/etc/ssh/sshd_config
3、ssh使用
格式 ssh [userId@]host ["COMMAND"]
[userId@] 在linux上使用ssh时可以省略,省略的情况默认使用当前系统登陆的用户作为userId请求连接远程host。
[command] 允许用户类似使用 su - userId -c COMMAND一样 ,只连接执行命令
其他参数:
-l userId 指明要连接的用户,等同于[userId@]
-p port 指明连接远程服务器的ssh的端口号,默认22
4、SSH基于秘钥方式登陆
原理:在ssh客户端本地生成一对公钥秘钥,并把公钥上传至要连接的远程服务器的某用户的家目录下,在通过 ssh host的方式连接远程主机时,就无需输入用户名密码,通过公钥秘钥方式进行认证。
具体实现:
1.生成秘钥对
ssh-keygen -t rsa
-t 指明加密类型
输入指定输出文件的路径,不写默认是当前用户的家目录下.ssh文件夹下,加密操作可以设定密码,以解密时用到,生成两个文件,一个id_rsa 和id_rsa_pub 公钥,默认在.ssh目录下
2.上传公钥到远程服务器对应的用户家目录下
ssh_copy_id -i file [userId@]host
-i 指定要上传的公钥文件
例如`
ssh_copy_id -i ~/.ssh/id_rsa_pub root@172.16.0.1