什么是ssh

配置文件位置:/etc/ssh/sshd_config

远程登录和为其他网络提供安全的加密数据传输协议,默认端口22,默认协议是SSH2

# 远程终端通过ssh连接服务器管理服务器

# 端口是某个主机提供服务的入口

提供服务:

  1. 类似telnet远程联机
  2. 类似ftp服务的ftp-server的sftp
  3. 利用ssh协议来实现加密传输数据,如scp远程拷贝

无法通过ssh连接远程主机故障排除?

no route to host
# 可能防火墙阻挡,检查防火墙配置是否开放这个端口,是否开放这个ip? Connection refused
# 检查对应的端口是否开启 # netstat -lntup | grep ssh # 检查是否ssh配置文件禁止远程root用户登录 # grep "PermitRootLogin" /etc/ssh/sshd_config # 检查物理网络 # 先ping ip,然后再 telnet ip port

ssh认证类型有哪几类?

  1. 口令

    向服务器发送建立连接请求,服务会返回768bit的公钥,客户端也会生成256bit的私钥,客户端再次请求的时候会把这两个组成1024bit的密钥本地保存一份并且发给服务器保存,然后每次对话,都对比双方的密钥,建立安全通信通道

  2. 密钥

    建立密钥对,把共用钥匙放在需要访问的目标服务器上,把私钥放到ssh的客户端或对应的客户端服务器上

ssh相关优化?

/etc/ssh/sshd_conf

  1. Port                                     # 更改端口,默认端口22大家都知道

  2. ListenAddress                     # 监听主机指定的ip地址,多个ip地址时,默认全部监听

  3. PermitRootLogin                 # 不允许root用户远程登录,去掉注释,让其生效,参数yes

  4. UseDNS                              # 反向解析,yes改为no

  5. PermitEmptyPasswords      # 不允许密码为空登录,去除注释,让其生效

  6. GSSAPIAuthentication

    # GSS API认证,防止客户端欺诈手段,ssh连接慢的原因,yes改为no

  7. GSSAPICleanupCredentials yes

    # GSS API清理凭证,去除注释,让其生效,参数yes

  # 这些ssh优化,应该放在系统初始化就需要做完

如何远程连接?

  1. window远程连接终端,如x-shell等工具
  2. linux中ssh服务就带ssh终端
    ssh -p port username@host_ip
    
    如: ssh -p 22 root@172.16.1.8
    
    # 通过 ssh终端连接远端主机172.16.1.8,以root身份端口22请求服务
    
    # 将会提示是否保存口令密码对,保存会保存在当前用户家目录下~/.ssh/known_hosts

ssh登录安全策略

  1. 禁止远程root登录
  2. 尽量使用密钥登录,而不是口令登录
  3. 防火墙封闭ssh,对客户端源ip进行限制,并且ssh只监听内网ip
  4. 最小化服务器公网ip

scp实现远程拷贝

scp -P port -rp file user@host_ip:target_dir

-P 指定端口

-r  递归拷贝目录

-p  保持文件属性

file  文件

user   以什么身份连接远端主机

host_ip 远端主机IP

target_dir 目标目录

例如:

scp -P 22 -rp test.txt root@172.16.1.5:/tmp

# 拷贝test.txt到远端主机tmp下

应用:

  1. scp可以实现两台可以通信主机之间拷贝文件
  2. 每次都是完整拷贝,效率没有rsync效率高

ssh的sftp功能使用

sftp -o Port=port user@password

-o 指定参数

-Port 指定端口

例如:

sftp -o Port=22 root@172.16.1.5

上传文件:

put file target_dir

如: put /etc/hosts /tmp

      # 把当前主机下/etc/hosts文件上传到远端主机/tmp目录下,需要权限,权限来源

      # 登录的身份

下载:

get file target_dir

如: put /etc/hosts /tmp

# 把远端主机中/etc/hosts文件下载到本地/tmp目录下

         # 上传和下载的文件不能指定目录,且这个ftp服务不安全,可以执行大部分linux命令,也拥有

        # 登录身份的所有权限

如何通过ssh的密钥登录?

  1. 创建密钥对,公钥和密钥

非交互:echo -e "\n"|ssh-keygen -t dsa -N ""

交互:sh-keygen -t dsa

# 这两条命令将会在对应用户家目录下的 .ssh/ 目录创建两个文件 id_dsa 、id_dsa.pub

# id_dsa 是私钥, id_dsa.pub 是公钥,基于当前用户 whoami 查看当前用户

  2. 分发密钥,公钥发给远端服务,私钥留在本机

ssh-copy-id -i .ssh/id_dsa.pub "-p 520 root@172.16.1.5"

# -p指定非默认端口,需要引号引起来

# 需要输入对应主机以什么用户发起连接对应的密码,连接远程机器以root身份登录需要输# 入root的密码

# 成功分发,将会保存在对应用户家目录下 ~/ssh/authorized_keys,发现更名了

  3. 密钥登录

ssh -p 520 root@172.16.1.5

# 直接连接过去,不在需要对应主机对应用户的密码

# 生成密钥对,对应当前用户,分发密钥可以任何用户和主机,但需要对应主机用户的密码

# 分发成功只能生成密钥对的用户可以无密码登录接收分发密钥的远端主机指定用户

linux_ssh的更多相关文章

  1. 六、Linux_SSH服务器状态

    一.保持Xshell连接Linux服务器状态 1.登录服务器后 cd /etc/ssh/ vim sshd_config 找到 ClientAliveInterval 0和ClientAliveCou ...

  2. linux_ssh用户枚举猜测

    新建一个用户名txt文档,写入常用的用户名 msfconsole use auxiliary/scanner/ssh/ssh_enumusers3

随机推荐

  1. 两个input均分自适应

    最近项目中,做到了表格类似的表单 左边是标题,右边是输入框,由于种种和项目相关原因,我们采取了div布局 div label input*2div里面有1个input,有的时候,遇到日期,会有2个in ...

  2. 固定底部导航菜单-续集(BottomMenu-移动端V3.0)

    固定底部导航菜单-续集(BottomMenu-移动端V3.0) 适应在客户端,点击弹出二级菜单.因为手机不支持hover.所以使用click点击实现弹出菜单,并且一级菜单聚焦变色,变化背景图片 核心c ...

  3. Qt用Zip压缩文件夹的一些坑

    环境: QT3.3.8 vs2005 QDir dir("/home/Blinux/html"); if ( !dir.exists() ) { //目录不存在 } QString ...

  4. Linux sftp 另外一台机器时,出现:receive message is too long

    因为在linux登录时,首先会运行的三个文件是: /etc/profile,/home/用户名/.bashrc,其次是/home/用户名/.bash_profile,出现这个问题的原因是因为在sftp ...

  5. 关于centos启动报错:Failed to start Crash recovery kernel arming的解决方案

    在VMware中安装了centos,重启时报错:Failed to start Crash recovery kernel arming 本质是kdump服务启动失败 先来说一下,什么是kdump K ...

  6. [转载]mysql中实现行号,oracle中的rowid

    mysql中实现行号需要用到MYSQL的变量,因为MySql木有rownumber. MYSQL中变量定义可以用 set @var=0 或 set @var:=0 可以用=或:=都可以,但是如果变量用 ...

  7. MySQL在并发场景下的问题及解决思路

    目录 1.背景 2.表锁导致的慢查询的问题 3.线上修改表结构有哪些风险? 4.一个死锁问题的分析 5.锁等待问题的分析 6.小结 1.背景 对于数据库系统来说在多用户并发条件下提高并发性的同时又要保 ...

  8. 单张滑动tab 组件

    /* CSS重置 * */ body, ul, ol { margin: 0px; padding: 0px; } .flash { width: 300px; height: 420px; posi ...

  9. IdentityServer Topics(2)- 定义资源

    您通常在系统设计中的第一件事就是您要保护的资源. 这可能是您的用户的身份信息,如个人资料数据或电子邮件地址,或访问API. 您可以使用C#对象模型定义资源(硬编码),或从数据存储中加载它们. IRes ...

  10. 针对Oracle的审计方案

    主题:针对Oracle的审计方案 数据库环境:Oracle 11g 数据库审计需求: 1.需要对连接数据库的行为进行审计 2.需要对核心表的DML操作进行审计 3.需要迁移审计数据到指定表空间 4.需 ...