V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
LINAICAI
V2EX  ›  Linux

Ubuntu14.04LTS 关于 SSH 无密码登录的一个问题

  •  
  •   LINAICAI · 2016-03-29 02:20:59 +08:00 · 3827 次点击
    这是一个创建于 2958 天前的主题,其中的信息可能已经有所发展或是发生改变。
    发现我的服务器只有 Root 账户才能无密码 SSH 登录,其他使用 adduser 创建的账户如 guest 账户等都不能无密码登录,本来是希望通过改 SSH 端口和禁止 root 远程登录然后通过免密码登录 guest 然后 su 到 root 这种方法来加强安全的,无奈 guest 账户居然无法免密码登录
    28 条回复    2016-03-31 11:50:27 +08:00
    New2016
        1
    New2016  
       2016-03-29 02:37:05 +08:00
    你的“无密码登录”是指用密钥吗?
    我从 14.04 用到 16.04 ,也没遇到什么只能用密码登录的情况
    LINAICAI
        2
    LINAICAI  
    OP
       2016-03-29 02:38:26 +08:00
    @New2016 指免密码 RSA 钥匙对登录
    LINAICAI
        3
    LINAICAI  
    OP
       2016-03-29 02:39:18 +08:00
    @New2016 这就是我好疑惑的地方啊,一样的配置方法,只有 root 可以免密码登录
    Tink
        4
    Tink  
       2016-03-29 02:48:40 +08:00 via iPhone
    其他账户的.ssh 里没有认证主机能登陆才怪呢。
    LINAICAI
        5
    LINAICAI  
    OP
       2016-03-29 02:53:41 +08:00
    @Tink 怎么认证?我就是本地生成钥匙对,然后把公钥上传到 guest 账户下的.ssh 里面的 authorized_keys 了
    LINAICAI
        6
    LINAICAI  
    OP
       2016-03-29 02:55:36 +08:00
    @LINAICAI 我想起来 /etc/ssh/ssh_config 里面有个 authorized_file 之类的,是不是只能指定一个认证文件,然后我只指定了 root 下的.ssh 目录的 authorized_keys ,所以 guest 账户无法通过认证?
    LINAICAI
        7
    LINAICAI  
    OP
       2016-03-29 02:56:43 +08:00
    @Tink 我 Linux 半桶水望赐教啊
    SharkIng
        8
    SharkIng  
       2016-03-29 03:21:11 +08:00
    每个账户的 directory 下的.ssh 里面对应你 ssh_configd 的 authorized_file 位置有一个对应的密钥,就应该可以了
    wayslog
        9
    wayslog  
       2016-03-29 03:35:03 +08:00
    贴 auth.log ,服务端的
    msg7086
        10
    msg7086  
       2016-03-29 03:53:34 +08:00
    RSAAuthentication yes
    PubkeyAuthentication yes
    #AuthorizedKeysFile %h/.ssh/authorized_keys

    这三项。你看看你有没有误设过 AuthorizedKeysFile 。
    11138
        11
    11138  
       2016-03-29 06:54:58 +08:00
    默认:
    AuthorizedKeysFile .ssh/authorized_keys
    另外注意用户目录下的.ssh 目录和.ssh 目录下的 authorized_keys 文件的拥有者和权限,对于用户本身是 0600 权限。
    Ellison
        12
    Ellison  
       2016-03-29 08:27:15 +08:00
    AuthorizedKeysFile %h/.ssh/authorized_keys
    这条就是指定各个用户目录下的.ssh/authorized_keys
    StrictModes no
    另外就是权限问题了,可以尝试把 StrictModes 改为 no
    xuboying
        13
    xuboying  
       2016-03-29 09:13:31 +08:00 via Android
    ~/.ssh 目录权限 700 里面文件权限 600
    paulagent
        14
    paulagent  
       2016-03-29 09:22:33 +08:00
    应该是你权限不对。这事以前在客户那里遇到过好多次。
    4641585
        15
    4641585  
       2016-03-29 09:26:34 +08:00
    我这里遇到的问题和解决是这样的:

    我的 vps 有 root 和 user 两个用户,我生成了一对密钥,想要使用同一个 *.pub >> authorized_keys 。但是只有 root 可以无密码登录, user 用户还是会询问密码。我又生成了一对密钥,两个用户使用两套密钥就可以了。

    我还有一个问题:

    同一套 key 可以给不同的 vps 共用,但是为什么不能给同一个机器的不同用户使用?
    wizardoz
        16
    wizardoz  
       2016-03-29 09:32:48 +08:00
    不要手动编辑 authorized_keys 文件,那个文件对权限什么的限制很严格,稍微错一点也登录不了。
    用 ssh-copy-id 命令
    用 ssh-copy-id 命令
    用 ssh-copy-id 命令
    klesh
        17
    klesh  
       2016-03-29 09:37:14 +08:00
    觉得 11 楼说的文件权限可能性最大
    LINAICAI
        18
    LINAICAI  
    OP
       2016-03-29 10:10:43 +08:00
    @wizardoz 我知道,没确保所有帐号都能通过认证和登录都不敢关闭 root 登录,另外 allowUser 都必须要看的
    不过你提醒的对,万一不小心就完蛋了。。。
    这坑挖的有点大
    @4641585 我当然是两套钥匙对了

    @klesh
    @klesh
    realpg
        19
    realpg  
       2016-03-29 10:32:13 +08:00 via Android
    越发觉得楼主用的 ubuntu server 跟我用的不一样了

    为了安全要禁用 root 登录?首先要问你能 root 登录是怎么搞出来的。。。你领导知道么。
    Agromania
        20
    Agromania  
       2016-03-29 15:01:17 +08:00
    @realpg 有一些 vps 云主机初始化出来的的 ubuntu 默认就是一个 root+密码,可能楼主是这么搞出来的
    realpg
        21
    realpg  
       2016-03-29 15:40:37 +08:00
    @Agromania 原来如此,你说这个我也有印象了,貌似云上的不是用自己镜像弄出来的真是这样的,我错怪楼主了……
    我这里 ubuntu server 的物理机太多了,所以忽略了云
    LINAICAI
        22
    LINAICAI  
    OP
       2016-03-29 16:01:39 +08:00
    @realpg AWS 也没有 root 帐户,但我是 linode 的,初始化有 root 帐户的
    LINAICAI
        23
    LINAICAI  
    OP
       2016-03-29 16:02:18 +08:00
    @realpg 是的,镜像问题,我不是镜像
    breeswish
        24
    breeswish  
       2016-03-29 20:02:11 +08:00
    用户 foo:

    chown -R foo:foo /home/foo/.ssh
    chmod 500 /home/foo/.ssh
    chmod 400 /home/foo/.ssh/authorized_keys
    LINAICAI
        25
    LINAICAI  
    OP
       2016-03-30 00:45:36 +08:00
    @breeswish 并没有卵用
    vvdvdsv
        26
    vvdvdsv  
       2016-03-30 09:34:32 +08:00 via Android
    每次 hexo d 都要密码,但是 root 是可以免密码的,为什么新建的 git 却没有办法?也生成了密钥了。

    同问?
    LINAICAI
        27
    LINAICAI  
    OP
       2016-03-30 09:41:00 +08:00
    @vvdvdsv 要配置,具体 git -h
    akira
        28
    akira  
       2016-03-31 11:50:27 +08:00
    密钥传错的可能性也不是没有。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   974 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 23:48 · PVG 07:48 · LAX 16:48 · JFK 19:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.