OpenSSH 软件包包含了以下程序:
sshd -- SSH服务端程序
sftp-server -- SFTP服务端程序(类似FTP,但提供数据加密的一种协议)
scp -- 非交互式sftp-server的客户端,用来向服务器上传/下载文件,安全复制
sftp -- 交互式sftp-server客户端,用法和ftp命令一样。
slogin -- ssh的别名
ssh -- SSH协议的客户端程序,用来登入远程系统或远程执行命令
ssh-add -- SSH代理相关程序,用来向SSH代理添加dsa key
ssh-agent -- ssh代理程序
ssh-keygen -- ssh public key 生成器

当远程主机的公钥被接受以后,它就会被保存在用户home目录的 $HOME/.ssh/known_hosts文件之中。下次再连接这台远程主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。
出现“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 警告”无法建立ssh连接。如果远程系统重装过系统,ssh指纹已经改变,你需要把 .ssh 目录下的 know_hosts文件中相应远程主机IP一致的指纹删除,再通过ssh登录一次回答 yes,重新认证一次方可登录。

sshd 默认配置文件为: /etc/ssh/sshd_config

##SSH服务器监听的选项
#修改监听的端口,可以增加入侵者探测系统是否运行了 sshd守护进程的难度。
Port 30003
#使用SSH V2协议,比V1安全
Protocol 2
#监听的地址改为局域网
#ListenAdderss 0.0.0.0
ListenAdderss 192.168.5.0/24
#禁止DNS反向解析
UseDNS no
# 密钥长度
ServerKeyBits 2048

##用户登录控制选项
#是否允许root用户登录,如果允许用户使用root用户登录,那么黑客们可以针对root用户尝试暴力破解密码,给系统安全带来风险。
PermitRootLogin no
#是否允许空密码用户登录,允许使用空密码系统就像不设防的堡垒,任何安全措施都是一句空话。
PermitEmptyPasswords no
#登录验证时间(2分钟)
LoginGraceTime 2m
#最大重试次数
MaxAuthTries 6
#只允许user用户登录,与DenyUsers选项相反
AllowUsers user1 user2
# 禁止指定的 用户或组
DenyUsers apache

#注:Allow 和 Deny 可以组合使用,它们的处理顺序是:DenyUsers, AllowUsers, DenyGroups, AllowGroups

##登录验证方式
#关闭密码验证 ,改用key验证
PasswordAuthentication no

#以下三行没什么要改的,把默认的#注释去掉就行了
RSAAuthentication yes
#启用秘钥验证
PubkeyAuthentication yes
#指定公钥数据库文件
AuthorsizedKeysFile .ssh/authorized_keys

2 对 “ssh配置”的想法;

  1. ubuntu开启root用户远程密码登录:
    #vim /etc/ssh/sshd_config
    找到并用#注释掉这行:PermitRootLogin prohibit-password
    新建一行 添加:PermitRootLogin yes
    重启服务

    #sudo service ssh restart

    PermitRootLogin yes
    允许root登录,设为yes。
    PermitRootLogin prohibit-password
    允许root登录,但是禁止root用密码登录

  2. bash
    #禁止root登录
    sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
    sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
    sed -i 's/#PermitRootLogin no/PermitRootLogin no/' /etc/ssh/sshd_config

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code