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 restartsystemctl 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 yesPubkeyAuthentication yesAuthorizedKeysFile .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)的后两个参数相反

Linux 命令之ssh、scp相关推荐

  1. linux命令:ssh scp ssh-keygen -t rsa用法

        SSH远程连接命令:   用法格式:ssh IPADDR 不指定用户则以当前主机登录系统的用户身份去登录远程主机 ssh USERNAME@IPADDR  通过ssh协议以某用户身份远程登录到 ...

  2. Linux使用SSH上传下载文件,Linux下通过ssh scp命令上传下载文件

    Linux下通过ssh scp命令上传下载文件. 1.上传本地文件到服务器 scp /path/filename username@servername:/path/ 例如 scp /var/tale ...

  3. Linux命令 --- cp与scp

    Linux为我们提供了两个用于文件copy的命令,一个是cp,一个是scp,但是他们略有不同. cp   --- 主要是用于在同一台电脑上,在不同的目录之间来回copy文件 scp --- 主要是在不 ...

  4. Linux命令之:scp命令

    作用: Linux scp命令用于Linux之间复制文件和目录. scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令. 语法格式: usage: ...

  5. scp linux 命令加密码,scp命令_Linux scp 命令用法详解:加密的方式在本地主机和远程主机之间复制文件...

    scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器硬盘变为只读read onl ...

  6. Linux命令之ssh

    一. 配置ssh 1. 命令 ssh-keygen [选项] 2. 说明 用于为"ssh"生成.管理和转换认证密钥,它支持RSA和DSA两种认证密钥 3. 选项 -C:添加注释 - ...

  7. 学习Linux命令:关于ssh命令

    1.查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号.使用ssh -V命令可以得到版本号.需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用Op ...

  8. Linux命令之ssh基本用法

    1.基本操作    1)若本地用户名与远程用户名不同,则登录命令格式如下:       $ ssh user@host    2)若本地用户名和远程用户名一致,则登录可省略用户名:       $ s ...

  9. ssh远程执行linux命令nohup,ssh 远程执行命令 nohup 无效问题

    昨夜1:00多准备睡觉了,突然一哥们咨询了我一个问题. 他A机器上远程执行B机器(ssh user@ip "command")上的脚本,B上的服务并没有起来.看了下截图,脚本确实是 ...

最新文章

  1. 关于django 如何实现简单api的restful 接口
  2. python语言的理念_python之禅--理念
  3. Java 8 stream forEach filter anyMatch
  4. @ConfigurationProperties和@Value不同的使用场景,@Bean添加组件 (6.spring boot配置文件注入)...
  5. RUNOOB python练习题2
  6. spring三种注入方式
  7. androidstudio mac mini_苹果M1芯片笔记本能安装运行Android Studio和模拟器吗?能!
  8. 数据结构二叉树算法c语言实现,数据结构与算法 :AVL平衡二叉树C语言实现
  9. 利润表模板excel_年薪60w财务总监:工作八年,这10个Excel必备财务系统,效率翻倍...
  10. 光储直流微电网simulink仿真模型
  11. FBEC2020大会圆满闭幕!区块链分会场人气爆棚!
  12. 一加7t人脸识别_一加7T新机设计图发布 这款手机的外观设计如何
  13. WinSockAPI
  14. Leetcode动态规划部分典型题目分类及总结
  15. 适合小白的大白话讲解---Git与Github的区别
  16. 关于缓存一致性的一些介绍
  17. 双频段GSM/DCS移动电话射频指标分析(转)
  18. 李笑来,那个一顿饭点8条鲈鱼的人
  19. C#.Net分类随笔列表
  20. Spring异常:NoSuchBeanDefinitionException: No qualifying bean of type ‘it.com.dao.AccountDao‘ available

热门文章

  1. html5怎么给字加颜色代码,字体颜色怎么设置?
  2. English Learning - Day27 作业打卡 2023.1.3 周二
  3. linux汇编伪指令大全,RM汇编的伪指令(二)
  4. JQuery表格操作练习
  5. MPEG-2 数字视频技术参考指南 (6)—— DVB数字视频广播
  6. SpringBoot - 定时任务入门(@Scheduled )详解
  7. 人生苦短,我用Python(基础篇)
  8. 测试计算机网络的连通性,计算机网络系统连通性测试
  9. 鸡感染呼吸道病的危害 防治鸡咳嗽呼吸病的特效药
  10. 快递单号查询,筛选暂存件单号归类为已签收