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

linux 上有记住密码的 terminal 么?每次都要输入密码好麻烦

  •  
  •   herozem · 2015-12-24 11:56:12 +08:00 · 9983 次点击
    这是一个创建于 3264 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我知道有 authorized_keys 这回事,但是总会有没有 key 只能密码登陆的状况.

    目前是给常用的机器上 authorized_keys,然后在/usr/local/bin加脚本,存储为 sshxxx,
    但还是比较麻烦

    ps: 类似 xshell 这样的.

    第 1 条附言  ·  2015-12-24 12:37:06 +08:00
    另一种情况是, 有 key,还要输入 key 的密码. 这个虽然也可以用 sshagent 实现,但是还是比较麻烦-.- 主要是之前习惯了 xshell
    43 条回复    2019-01-02 23:06:13 +08:00
    zhjits
        1
    zhjits  
       2015-12-24 11:57:12 +08:00 via Android   ❤️ 1
    jarlyyn
        2
    jarlyyn  
       2015-12-24 11:59:24 +08:00
    firessh?
    linhua
        3
    linhua  
       2015-12-24 12:06:34 +08:00
    sshpass
    cyneuzk
        4
    cyneuzk  
       2015-12-24 12:07:57 +08:00 via iPhone
    securecrt
    bingwenshi
        5
    bingwenshi  
       2015-12-24 12:10:56 +08:00
    那么,是什么场景只能用帐号密码,而不能用 key 呢?
    zen9073
        6
    zen9073  
       2015-12-24 12:17:29 +08:00
    你需要的是 .ssh/config
    https://book.9073.me/linux/openssh.html
    herozem
        7
    herozem  
    OP
       2015-12-24 12:36:32 +08:00
    @bingwenshi 额,这个是很少. 但是还有的情况时,有 key,还要输入 key 的密码. 这个虽然也可以用 sshagent 实现,但是还是比较麻烦-.- 主要是之前习惯了 xshell
    wweir
        8
    wweir  
       2015-12-24 12:38:49 +08:00 via Android
    新机器上手第一件事 ssh-copy-id ,
    抱歉我不懂你的苦
    herozem
        9
    herozem  
    OP
       2015-12-24 12:38:59 +08:00
    @cyneuzk 嗯,我在试这个,但是好丑-.-我设置了 qtconfig 成 gtk theme 还是没用.
    herozem
        10
    herozem  
    OP
       2015-12-24 12:45:49 +08:00
    @wweir 所以你每次还是要输入 ssh root@... -p xxx, 然而 xshell 早就 Alt+o, enter 登陆进去了
    herozem
        11
    herozem  
    OP
       2015-12-24 12:47:17 +08:00
    @jarlyyn 我试了一下,firessh 显示有问题. 实用性还是不足.
    herozem
        12
    herozem  
    OP
       2015-12-24 12:48:19 +08:00
    @zhjits 这方法很棒,不过还是每次都要自己写一个小脚本放 PATH 里
    nowcoder
        13
    nowcoder  
       2015-12-24 12:49:11 +08:00
    securecrt
    SpicyCat
        14
    SpicyCat  
       2015-12-24 14:57:41 +08:00
    用 Linux 就要用 Linux 的方式。 sshagent, ~/.ssh/config 配置好,每次开机只需要输入一次 key 的 passphrase, 简单方便。
    xcodebuild
        15
    xcodebuild  
       2015-12-24 15:02:45 +08:00
    @herozem ssh-copy-id 了你要是想给 zsh 绑定个 alt+o 就进去了,,,都不用 enter 。
    herozem
        16
    herozem  
    OP
       2015-12-24 15:36:21 +08:00
    @codefalling 额,好吧,你针对的是一台机器,这样做挺方便. 但是机器多起来就不一样了
    vonnyfly
        17
    vonnyfly  
       2015-12-24 16:04:27 +08:00
    ssh 可以在.ssh/config 里定义好. 然后 ssh XXX
    Host XXX
    HostName xxx.xxx.xxx
    User root
    IdentityFile ~/.ssh/id_rsa
    PasswordAuthentication ...(没测试)
    GNiux
        18
    GNiux  
       2015-12-24 16:10:28 +08:00 via iPhone
    ssh-keygen 的时候,要求输入新密码时,不要不要,直接回车。
    herozem
        19
    herozem  
    OP
       2015-12-24 16:20:45 +08:00 via iPhone
    @GNiux 嗯。不是我的 key 是公司的
    herozem
        20
    herozem  
    OP
       2015-12-24 16:24:43 +08:00
    @vonnyfly 嗯,最后我知道了 linux 上没有 xshell 这样的神器了 T_T
    wxm4ever
        21
    wxm4ever  
       2015-12-24 16:31:33 +08:00
    > @wweir 所以你每次还是要输入 ssh root@... -p xxx, 然而 xshell 早就 Alt+o, enter 登陆进去了

    xshell 的 alt o 和 linux 定义一个 alias 不是一样的原理么, 并不觉得我通过 aliasl 连 ssh 和你 alt o 有什么速度上的明显差异。
    kmahyyg
        22
    kmahyyg  
       2015-12-24 16:45:18 +08:00
    安卓平台有吗?搭车……
    herozem
        23
    herozem  
    OP
       2015-12-24 17:48:03 +08:00
    @wxm4ever 嗯,单看一个是没有,如果有 n 台主机, xshell 会显得好用些。
    wweir
        24
    wweir  
       2015-12-24 20:38:46 +08:00 via Android
    @herozem 抱歉,目前在用 linux 桌面,不用 xshell 。
    偷偷告诉你,我有个习惯,在命令后面加注释,登用 ssh 是用 ctrl+r ssh 机器名。
    非要说快捷的话,感觉 win+v 连 vpn 还可以。
    loading
        25
    loading  
       2015-12-24 20:40:40 +08:00 via Android
    有个叫做 fuck 的神奇脚本。
    herozem
        26
    herozem  
    OP
       2015-12-24 21:25:09 +08:00
    @loading 啊,那个不是纠正打错命令的吗
    loading
        27
    loading  
       2015-12-24 21:37:49 +08:00 via Android
    其实你的需求可能是 alias
    kfll
        28
    kfll  
       2015-12-24 21:41:06 +08:00 via iPhone
    keyring
    congeec
        29
    congeec  
       2015-12-24 21:52:38 +08:00
    四种方式够你用了,自己搜
    expect
    sshpass
    ssh-copy-id
    ssh_config
    darluc
        30
    darluc  
       2015-12-24 22:37:39 +08:00
    自己写一个 shell 脚本:
    ```
    #!/usr/bin/expect
    spawn ssh [email protected]
    expect -re " password:"
    send "password\r"
    interact
    ```
    LINAICAI
        31
    LINAICAI  
       2015-12-24 22:40:06 +08:00
    ssh 登录还需要输入密码???
    LINAICAI
        32
    LINAICAI  
       2015-12-24 22:43:23 +08:00
    非得用密码登录的, ssh 是摆设了啊,用 config ?
    daybyday
        33
    daybyday  
       2015-12-24 22:53:44 +08:00
    /etc/hosts
    ssh-copy-id -i user@t-server1
    alias server1='ssh user@t-server1'
    wxm4ever
        34
    wxm4ever  
       2015-12-25 09:32:47 +08:00
    @herozem 给每个 host 做 alias,然后配合 ctrl r 。 你可以试试,真的没你想的那么慢
    nevernet
        35
    nevernet  
       2015-12-25 09:53:48 +08:00
    看到楼上的大部分回答都笑了
    herozem
        36
    herozem  
    OP
       2015-12-25 10:21:30 +08:00
    @nevernet
    @wxm4ever
    @daybyday 楼上说的这些我都知道。我只是在问有没有 xshell 这样方便的管理大量机器的 terminal emulator 。所以我在 20 楼就得出结论了, linux 无此神器。

    另外 secureCRT 我试了一下,第一是在 linux 下的版本不可以更换主题,好丑-。-,第二,快捷键和我自定义的 wm 快捷键有大量冲突,所以放弃了。

    另外就桌面体验来说, linux 比 windows 还差得远。可是 windows 桌面的可定制性不够强。 wm 与 windows 不可兼得啊!伤心
    liujiangbei
        37
    liujiangbei  
       2015-12-25 13:49:09 +08:00
    expect
    sshpass
    ssh-copy-id
    ssh_config
    nevernet
        38
    nevernet  
       2015-12-25 16:47:49 +08:00
    @herozem ...
    要是没有比 xshell 强大的东西,你让用 linux 的怎么活? 比如楼上提到的工具,哈哈
    ldsink
        39
    ldsink  
       2015-12-25 17:25:29 +08:00
    迷之问题。(#‵′)凸
    * 要避免输入密码, ssh-copy-id 直接帮你复制公钥了,压根不需要操心 authorized_keys 。
    * 要管理多台机器,这里我理解是要能人工的、快捷的登陆到不同的机器上执行一些操作(大批量部署肯定是部署脚本了)。这么多台机器总有个区分的名字什么的吧,除了第一次要 ssh XXX@XXX ,后面都是直接 Crl + R + 一般不超过三个字母 (常用的一般就一个)+ Enter ,不超过六个键就搞定的事情,还要特意装个工具?打开终端还要按三个键呢。

    剩下的问题就只有如何连接那些基于奇怪原因不能添加公钥,只能用密码的服务器(数量不明)。
    我的 Deepin Terminal 有个 SSH 连接管理的功能,设置好以后,每次 Ctrl + 9 切出界面选好服务器 Enter 就 OK 了。我之前一直不知道这种鸡肋功能有啥用,今天发现用武之地了。

    PS: 我没用过 XShell ,主系统 Deepin 。我用上面的方法弄过三十多台服务器超过一年时间没任何问题。
    WD40
        40
    WD40  
       2015-12-26 22:24:00 +08:00
    Gnome Connection Manager

    http://kuthulu.com/gcm/
    herozem
        41
    herozem  
    OP
       2015-12-26 23:39:50 +08:00 via iPhone
    @WD40 好赞顶!
    shaojz2005
        42
    shaojz2005  
       2019-01-02 18:39:08 +08:00
    @WD40 这个是针对窗口环境的吗?
    WD40
        43
    WD40  
       2019-01-02 23:06:12 +08:00
    @shaojz2005 既然是 Gnome 當然是圖形環境咯 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2729 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:34 · PVG 13:34 · LAX 21:34 · JFK 00:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.