Linux 命令之ssh、scp 青旅半醒 2022-05-08 03:50 318阅读 0赞 ## ssh命令介绍 ## ### 一、什么是ssh ### * SSH是一种网络协议,用于计算机之间的加密登录。 * SSH只是一种实现,存在多种实现,一种常用实现为OpenSSH,是自由软件,应用广泛。默认端口22。 ### 二、基本用法 ### * 语法:`ssh [-l login_name] [-p port] [user@]hostname` * 多种使用方式 #不指定用户,默认使用root账号登录 ssh 192.168.0.66 #指定用户 ssh -l root 192.168.0.66 ssh root@192.168.0.66 #指定端口 ssh -p 123 192.168.0.66 ssh -p 123 root@192.168.0.66 ### 三、配置与操作 ### * 配置文件所在位置:`/etc/ssh/sshd_config` * 禁止root登录:`PermitRootLogin no` * 重启:`service sshd restart`,`systemctl restart sshd` ### 四、中间人攻击 ### * SSH之所以能够保证安全,原因在于它采用了公钥加密。 * 整个过程是这样的:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。 * 这个过程本身是安全的,但是实施的时候存在一个风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。 * 可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了。这种风险就是著名的"中间人攻击"(Man-in-the-middle attack)。 ### 五、公钥登录 ### * 公钥生成(会在当前目录生成两个文件:id\_rsa.pub和id\_rsa):`ssh-keygen` * 将公钥传输到远程主机host上面:`ssh-copy-id user@host` * 修改配置文件,将以下几行的注释放开(/etc/ssh/sshd\_config) RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized\_keys文件中。公钥就是一段字符串,只要把它追加在authorized\_keys文件的末尾就行了。 * 命令表示这个过程: `ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub` ## scp命令介绍 ## ### 什么是scp ### * scp是secure copy的缩写,用于在linux下远程拷贝文件的命令,类似与cp(cp是在本机拷贝,不能跨服务器)。scp传输是加密的,会稍微影响速度,但是占用资源少,系统负荷低。 ### 基本用法 ### * 语法:`scp [参数] [原路径] [目标路径]` #### 使用实例 #### 1. 从本地服务器复制到远程服务器 scp local_file remote_username@remote_ip:remote_folder scp local_file remote_ip:remote_folder * \-r 递归复制整个目录。 1. 从远程服务器复制到本地服务器 scp remote_username@remote_ip:remote_folder local_file * 与(1)的后两个参数相反
还没有评论,来说两句吧...