Mic*_*ard 7 automation linux ssh
问题:
我没有对服务器的 root 访问权限(即,我不能/不想更改任何系统范围的服务器配置),并且我想将 scp 与替代身份文件(例如,.ssh/id_rsa_for_scp
)一起使用来自动执行从服务器下载一些文件,但我不希望使用相同的密钥通过 ssh 访问服务器。
Mic*_*ard 15
将密钥文件复制到服务器后:
ssh-copy-id -i ~/.ssh/id_rsa_for_scp legendaryuser@192.168.1.1
Run Code Online (Sandbox Code Playgroud)
(为了简化示例,我们假设客户端的机器 ~/.ssh/config 已经配置。有关~/.ssh/config
run 的更多详细信息man ssh_config
)
Host testmachine
Hostname 192.168.1.1
User legendaryuser
BatchMode yes
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa_for_scp
Run Code Online (Sandbox Code Playgroud)
您将需要编辑服务器的/home/legendaryuser/.ssh/authorized_keys
文件。
从:
ssh-rsa AAAAAC3nZCXExxHUEBR...
Run Code Online (Sandbox Code Playgroud)
To: (此版本允许下载和上传)
command="if [[ \"$SSH_ORIGINAL_COMMAND\" =~ ^scp.? ]]; then $SSH_ORIGINAL_COMMAND ; else echo Access Denied; fi" ssh-rsa AAAAAC3nZCXExxHUEBR...
Run Code Online (Sandbox Code Playgroud)
如果要将 scp 限制为“仅下载模式”并且仅限制为来自特定目录的文件,请执行以下操作:
command="if [[ \"$SSH_ORIGINAL_COMMAND\" =~ ^scp[[:space:]]-f[[:space:]]/full/path/to/dir/.? ]]; then $SSH_ORIGINAL_COMMAND ; else echo Access Denied; fi" ssh-rsa AAAAAC3nZCXExxHUEBR...
Run Code Online (Sandbox Code Playgroud)
最后,为了安全起见,让我们为密钥添加更多限制:
command="if [[ \"$SSH_ORIGINAL_COMMAND\" =~ ^scp[[:space:]]-f[[:space:]]/full/path/to/dir/.? ]]; then $SSH_ORIGINAL_COMMAND ; else echo ERRO Access Denied; fi",no-pty,no-port-forwarding,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAAC3nZCXExxHUEBR...
Run Code Online (Sandbox Code Playgroud)
您可以authorized_keys
通过运行以下命令查看有关该文件的更多详细信息:
man sshd
Run Code Online (Sandbox Code Playgroud)
Ps:您还可以添加from=xxx.xxx.xxx.xxx
限制使用来自特定 IP 地址或网络的密钥。
Pps:对不起我的英语,我不是母语人士。
归档时间: |
|
查看次数: |
5712 次 |
最近记录: |