V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
chenqh
V2EX  ›  Python

ssh 可以设置常用地登录吗?

  •  
  •   chenqh · 2021-05-22 10:18:11 +08:00 · 2725 次点击
    这是一个创建于 1079 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,想 qq 常用地那样?

    19 条回复    2021-05-23 14:17:50 +08:00
    cherbim
        1
    cherbim  
       2021-05-22 10:21:06 +08:00 via Android
    只允许指定 ip 登录,在 sshd_config 配置文件里,allowusers
    wzhpro
        2
    wzhpro  
       2021-05-22 10:31:36 +08:00
    没必要,证书认证+动态验证码 已经够强了
    toaruScar
        3
    toaruScar  
       2021-05-22 10:39:18 +08:00 via iPhone   ❤️ 2
    可以,自定义 PAM 模块就行了

    https://superuser.com/a/792842/325668
    chenqh
        4
    chenqh  
    OP
       2021-05-22 10:41:27 +08:00
    知道怎么做了,但是不会搞 pam,还是算了把,不做了
    yanqiyu
        5
    yanqiyu  
       2021-05-22 10:43:03 +08:00
    其实没必要用 pam,直接防火墙拦截掉除了常用 ip 之外的 port22 入站就行
    chenqh
        6
    chenqh  
    OP
       2021-05-22 10:47:53 +08:00
    @yanqiyu 关键 IP 会变呀
    Jirajine
        7
    Jirajine  
       2021-05-22 11:37:45 +08:00
    证书登录可以用 oauth,比如用 google 帐号授权登录。
    https://smallstep.com/blog/diy-single-sign-on-for-ssh/
    ronman
        8
    ronman  
       2021-05-22 15:22:07 +08:00
    证书+禁 root+fail2ban
    vhus
        9
    vhus  
       2021-05-22 19:27:07 +08:00
    @ronman 支持!
    uncat
        10
    uncat  
       2021-05-22 22:44:56 +08:00
    本地维护一份 ~/.ssh/config 配置. 将 git 仓库中的 config 文件软链到 ~/.ssh/config. 然后 config 就可以版本控制了.
    然后. 用如下的配置模板为每个项目的服务器添加一份配置.

    Host project-1
    User <username1>
    HostName <IP1>
    ProxyJump <username2>@<IP2>

    project-1 是一个 nickname.
    <username1> 是登陆服务器的地址.
    <IP1> 是服务器的 IP.
    <username2> 是 ssh 登陆跳转服务器的地址.
    <IP2> 是跳转服务器的 IP.
    添加了这样的配置后. 登陆服务器. 以往的命令: ssh <username1>@<IP1> 就会变成 ssh project-1. 这里面 <username2>@<IP2> 对应的跳转服务器的作用是: 在你每次 ssh project-1 时, 流量都会先发给 <username2>@<IP2> 对应的跳转服务器, 由跳转服务器发出. 这样, 你所有的 ssh 登陆请求就会有一个固定的来源 IP 了. 这个 IP 就是 IP2(跳转服务器的 IP). 一般云服务商都一提供网络安全组. 将 22 端口设为只允许 IP 登陆即可.

    最终你的 git 仓库中的 config 文件会变成下面的形式:

    Host project-1
    User <username1>
    HostName <IP1>
    ProxyJump <username2>@<IP2>

    Host project-3
    User <username3>
    HostName <IP3>
    ProxyJump <username2>@<IP2>

    Host project-4
    User <username4>
    HostName <IP4>
    ProxyJump <username2>@<IP2>

    Host project-5
    User <username5>
    HostName <IP5>
    ProxyJump <username2>@<IP2>

    # 类似上面的形式. 每次有新的项目. 就添加一个块. 然后推送到远程仓库. 让其他小伙伴拉取这个仓库. 添加软链接到 ~/.ssh/config 即可.
    uncat
        11
    uncat  
       2021-05-22 22:46:27 +08:00
    > <username1> 是登陆服务器的地址.

    纠正为: <username1> 是登陆服务器的用户名
    uncat
        12
    uncat  
       2021-05-22 22:47:12 +08:00
    > <username2> 是 ssh 登陆跳转服务器的地址.

    纠正为: <username2> 是 ssh 登陆跳转服务器的用户名.
    uncat
        13
    uncat  
       2021-05-22 22:48:09 +08:00
    > 将 22 端口设为只允许 IP 登陆即可.

    纠正为: 将 22 端口设为只允许来自跳转服务器的 IP 登陆即可.
    zxwy
        14
    zxwy  
       2021-05-23 00:03:52 +08:00 via iPhone
    借楼问下大家 vps 必须走代理才能连接 ssh 有解吗
    lekai63
        15
    lekai63  
       2021-05-23 07:26:34 +08:00 via iPhone
    @zxwy 在楼上说的 config 文件的块里写 proxycommand

    proxy 小软件可以是 connect.exe (好像是 git 自带?) or nc
    uncat
        16
    uncat  
       2021-05-23 07:31:42 +08:00
    @zxwy 两种可能.
    1. 线路拥堵
    2. 端口被封
    zxwy
        17
    zxwy  
       2021-05-23 11:01:24 +08:00 via iPhone
    @lekai63 大佬可否说下具体操作或者给个教程,只是喜欢折腾却什么也不懂的小白
    zxwy
        18
    zxwy  
       2021-05-23 11:02:20 +08:00 via iPhone
    @uncat 好多天了,查询端口也正常的,ping 也通,节点也正常使用
    lekai63
        19
    lekai63  
       2021-05-23 14:17:50 +08:00
    @zxwy 这是我的 C:\users\lekai\.ssh\config 文件中的其中一个块

    Host xx
    HostName xx.quarkmed.com
    User user
    IdentityFile ~/.ssh/vpskey/vpskey
    Port 10086
    ProxyCommand C:\Users\lekai\.ssh\connect.exe -S 127.0.0.1:7890 %h %p

    你需要搜索的关键词是:
    ssh config proxycommand
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2615 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:16 · PVG 20:16 · LAX 05:16 · JFK 08:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.