SSH命令详解
SSH是Secure Shell Protocol的简写(安全的壳程序协议),它可以通过数据包加密技术将等待传输的数据包安全加密后再传输到网络上。
SSH连接步骤
SSH主要是利用RSA/DSA/Diffie-Hellman等机制进行加密。目前SSH的协议版本有两种,分别是Version1和Version2,其中Version2由于加上了连接检测机制,可以避免连接期间被插入恶意的攻击码。
SSH连接步骤:
- 服务器建立公钥文件
每一次启动SSHD服务时,该服务会主动去找/etc/ssh/ssh_host*文件,若系统刚刚安装完成,由于没有这些公钥文件,因此SSHD
会主动计算出这些需要的公钥文件,同时也会计算出服务器自己需要的私钥文件 - 客户端主动连接请求
- 服务器传送公钥文件给客户端
接收到客户端的要求后,服务器便将第一个步骤取得的公钥文件传送给客户端使用 - 客户端记录/对比服务器的公钥数据及随机计算自己的公私钥, 若为第一次连接到此服务器,会将服务器的公钥数据记录到客户端的
~/.ssh/known_hosts,若已经记录过该服务器的公钥数据,则对比查看是否有差异。 - 返回客户端的公钥数据到服务器
此时双方互换了公钥 - 服务器接受私钥开始双向加密
服务器传送数据时,使用客户端的公钥加密发送,客户端接收后用自己的私钥解密
客户端传送数据时,使用服务器的公钥加密发送,服务器接收后用自己的私钥解密
在第4步中,客户端的密钥是随机运算产生于本次连接当中的,所以每次连接的密钥可能会不一样,此外~/.ssh/known_hosts会记录曾经
连接过的主机的公钥,用于确认我们已经连接上正确的服务器
启动SSH服务
Linux系统中默认就含有SSH所有需要的软件了,而且默认已经启动了SSH服务
/etc/init.d/sshd restart
netstat -tlnp | grep ssh
SSHD可以同时提供Shell与FTP,而且都是架构在Port22上面
SSH直接登录远程主机命令
ssh [-f] [-o参数项目] [-p非标准端口] [账号@]IP [命令]
e.g. ssh student@127.0.0.1 简单的使用student用户登录远程主机,如果不写账号的话,那么会以本地计算机的账号来尝试登录
远程,也就要求本地和远程有相同的账号
scp命令详解
文件异地直接复制命令
scp [-pr] [-l 速率] file [账号@]主机:目录名 <== 上传
scp [-pr] [-l 速率] [账号@]主机:file 目录名 <== 下载
-p 保留文件原有的权限信息
-r 复制来源为目录是需要制定-r
-l 限制传输速率,单位为Kbits/s
e.g. 将本机的/etc/hosts* 全部复制到127.0.0.1的student用户主目录内
scp /etc/hosts* student@127.0.0.1:~
e.g. 将127.0.0.1这台远程主机的/etc/bashrc复制到本机的/temp下面
scp student@127.0.0.1:/etc/bashrc /temp