首页 > 技术文章 > SSH

lovelinux199075 2018-05-21 00:11 原文

(1)ssh基本介绍

1.ssh服务是加密协议,默认端口是22,协议版本是SSHv2,V1有漏洞
2.服务端: ssh服务,sftp服务
3.客户端: ssh命令,scp命令
4.服务器端组件
openssl:负责远程加密
openssh:负责远程连接
5.ssh服务认证类型
基于口令的安全认证
基于密钥的安全认证:客户端生成一对密钥,客户端把自己的公钥推送到需要访问的服务器端,客户端使用私钥加密数据,服务器使用公钥解密数据

(2)ssh配置优化

#vim /etc/ssh/sshd_config 
Port 33222					//修改ssh的默认端口
PermitRootLogin no			//root用户禁止登陆
PermitEmptyPasswords no  	//禁止空密码登录
UseDNS no					//不使用DNS,解决ssh登陆慢的问题
GSSAPIAuthentication no		//解决ssh登陆慢的问题
sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config
egrep -i "(usedns|gssapiauth)" /etc/ssh/sshd_config
service sshd restart

(3)ssh客户端命令

1.ssh命令:远程登陆或执行命令

-p			//指定端口,如果是默认22号端口,可以不加
	ssh -p22 root@192.168.1.30				//远程登陆
	ssh -p22 root@192.168.1.30 "ifconfig" 	//不登陆远程主机执行命令

2.scp:传递文件

选项:
	-P			//指定端口
	-r			//拷贝目录的时候,如果想递归需要使用-r
	-p			//保持属性
scp -P22 -r /etc/ root@192.9.191.31:/tmp
例
scp -P22 -r /etc/ root@192.9.191.31:/tmp		//把/etc目录拷贝到31主机的/tmp目录下,/etc目录也拷贝过去了
scp -P22 -r /etc/* root@192.9.191.31:/tmp		//把etc目录下所有文件传递到31主机的/tmp目录下

(4)分发密钥

1.生成公钥和私钥

ssh-keygen -t rsa 							//交互式生成公钥和私钥
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa 	//非交互式生成公钥和私钥

2.传递公钥

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.9.191.31				//传递公钥
ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 22 root@192.9.191.31" 		//指定ssh端口传递公钥

3.免输入密码执行命令和传递文件

ssh root@192.9.191.31 "/sbin/ipadd a"				//执行命令
scp -r /etc/* root@192.9.191.31:/tmp				//传递文件

推荐阅读