ssh:用在linux或者unix的远程控制服务协议 sshd占用22端口
在linux系统下面/etc/ssh文件中 sshd_config文件是服务器端的配置 ssh_config是客户端的配置
ssh的日志文件存放在 /var/log/secure
命令 ssh name@ip -p port +...(这里可以添加需要执行的命令)
例如:ssh root@172.16.8.180是在自己的机器上远程连接,以root的身份登录(centos里面默认root都是可以登录的,而在ubantu里面是不允许root用户远程登录的)。其中不指定用户的话是默认当前用户进行远程登录。
设置某些用户不能远程登录:在sshd_config配置文件里 添加 DenyUsers shangsan lisi 再次重启ssh服务之后shangsan、lisi两个用户将不能远程登录。
更改环境变量之后重启ssh服务
1. 通过【service sshd restart】命令重启ssh服务;
2. 通过【systemctl restart sshd.service】命令重启ssh服务。
3. 直接执行/etc/rc.d/init.d/ssh restart
scp命令:远程拷贝 底层通过ssh协议远程连接到另外一台机器上拷贝文件过去。
拷贝文件scp root@ip :文件路径
拷贝文件夹 scp -r root@ip:/boot /etc/ssh -r (路径)
在mac电脑传文件到虚拟机:macos支持ssh以及scp命令
qixi@qixideMacBook-Pro ~ % scp root@172.16.8.180:lianxi/tes.txt /Users/qixi/Desktop
#将linux下面的tes.txt文件 拷贝到mac的桌面
sftp命令: sftp命令是一款交互式的文件传输程序,命令的运行和使用方式与ftp命令相似,但是,sftp命令对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能
sftp name@ip
其中ls是查看远程机器的目录 而!ls查看本地目录 lpwd是查看本地所在当前目录
put上传 get下载
如何在两台机器之间建立免密通道
ssh服务在远程连接时除了有密码认证还有密钥认证
关于密钥认证:
有对称加密算法和非对称加密算法两种,对称加密算法:两方同样的密钥来解密。非对称加密算法:私钥和公钥是成对生成的,这两个密钥是互不相同的
数字签名:识别用户身份(其中也涉及公钥和私钥)
公钥和私钥都是字符串是成对出现的。(具体请参考计算机网络)
免密通道的建立:
1.首先准备两台虚拟机
2. 在客户机上root生成密钥对
ssh-keygen -t rsa'
生成的密钥放在 ~/.ssh/ 目录下面
3. 上传公钥到服务器
ssh-copy-id -i 公钥文件 (这里可以使用scp命令但是此处使用该命令更为方便)
总结:known_hosts 是自动生成的文件,存放在~./ssh/下面 是存放的ssh连接通过其他服务器的公钥。如果出现了ip地址冲突则会连接不上,解决办法是直接删除掉known_hosts文件。
/Users/qixi/.ssh/id_rsa.
/Users/qixi/.ssh/id_rsa.pub.
这两个是生成的密钥文件 (rsa是一种加密算法)
macos终端查看ip地址的命令 :