一、概述
1、SSH是传输层和应用层上的安全协议,它只能通过加密连接双方会话的方式来保证连接的安全性。
2、SSH服务的守护进程为sshd,默认监听在22端口上,ssh服务端配置文件为/etc/ssh/sshd_config。
3、所有ssh客户端工具,包括ssh命令,scp,sftp,ssh-copy-id等命令都是借助于ssh连接来完成任务的。
4、ssh客户端命令(ssh、scp、sftp等)读取两个配置文件:全局配置文件/etc/ssh/ssh_config和用户配置文件~/.ssh/config。
二、配置文件分布
服务端:
• /etc/ssh/sshd_config :ssh服务程序sshd的配置文件。
• /etc/ssh/ssh_host_* :服务程序sshd启动时生成的服务端公钥和私钥文件。如ssh_host_rsa_key和ssh_host_rsa_key.pub。
• :其中.pub文件是主机验证时的host key,将写入到客户端的~/.ssh/known_hosts文件中。
• :其中私钥文件严格要求权限为600,若不是则sshd服务可能会拒绝启动。
• ~/.ssh/authorized_keys:保存的是基于公钥认证机制时来自于客户端的公钥。在基于公钥认证机制认证时,服务端将读取该文件。
客户端:
• /etc/ssh/ssh_config :客户端的全局配置文件。
• ~/.ssh/config :客户端的用户配置文件,生效优先级高于全局配置文件。一般该文件默认不存在。该文件对权限有严
• :格要求只对所有者有读/写权限,对其他人完全拒绝写权限。
• ~/.ssh/known_hosts :保存主机验证时服务端主机host key的文件。文件内容来源于服务端的ssh_host_rsa_key.pub文件。
• /etc/ssh/known_hosts:全局host key保存文件。作用等同于~/.ssh/known_hosts。
• ~/.ssh/id_rsa :客户端生成的私钥。由ssh-keygen生成。该文件严格要求权限,当其他用户对此文件有可读权限时,
• :ssh将直接忽略该文件。
• ~/.ssh/id_rsa.pub :私钥id_rsa的配对公钥。对权限不敏感。当采用公钥认证机制时,该文件内容需要复制到服务端的
• :~/.ssh/authorized_keys文件中。
• ~/.ssh/rc :保存的是命令列表,这些命令在ssh连接到远程主机成功时将第一时间执行,执行完这些命令之后才
• :开始登陆或执行ssh命令行中的命令。
• /etc/ssh/rc :作用等同于~/.ssh/rc。
三、常用配置
1、给自身做免密
(1)生成密钥:ssh-keygen (三次回车,不输入其他信息)
(2)复制公钥到文件中,并修改权限:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
(3)测试:不用输入密码即成功
ssh root@192.168.4.120
2、给其他服务器做免密
(1)在其中一台生成密钥:ssh-keygen (三次回车,不输入其他信息)
(2)复制本机公钥到其它机器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10-10-35-65
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10-10-35-66
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10-10-35-67
(3)测试:不用输入密码即表示成功
ssh root@10-10-35-65
ssh root@10-10-35-66
ssh root@10-10-35-67
3、禁止远程登录
vi /etc/ssh/sshd_config
PermitRootLogin yes 改为 PermitRootLogin no
4、解决连接慢的问题
vi /etc/ssh/sshd_config
UseDNS设置为no(默认为yes)。
GSSAPIAuthentication设置为 no (默认为yes)