我正在尝试设置 sshd 在专用服务器上做一些时髦的事情。(也就是说,不要担心我为什么要问这么奇怪的问题;我只是在尝试看看如何滥用 OpenSSH。)
我想允许用户使用虚构的名称登录系统。例如:
$ ssh joeschmoe@crazysshserver.com
Run Code Online (Sandbox Code Playgroud)
在名为joeschmoe.
当他们连接时,我希望他们以确实存在的用户身份登录,命名为guest,并且在环境中设置了某些内容,joeschmoe以便我知道他们以谁的身份登录。
是否可以将 UNIX-user 和 ssh-user 的概念解耦?
小智 1
如果您想允许所有用户登录,您可以跳过密码检查,而是在他们第一次尝试登录时为他们创建一个帐户:
安装libpam-script。例如:
sudo apt-get install libpam-script
在 的 auth 部分中/etc/pam.d/sshd,替换pam_unix.so为pam_script.so. 某些 Linux 发行版会自动为您进行此更改。例如,在 Ubuntu 14.04 中,pam_script.so将添加到/etc/pam.d/common-auth包含在/etc/pam.d/sshd.
/usr/share/libpam-script/pam_script_auth使用以下内容创建:
#!/bin/bash
adduser $PAM_USER --disabled-password --quiet --gecos ""
exit 0
通过以下方式使脚本可执行:
chmod +x /usr/share/libpam-script/pam_script_auth
要开心。