我有以下任务:
我用谷歌搜索了好几天,但似乎找不到解决方案。
这里提出的解决方案:ssh到服务器并切换用户并更改目录
ssh -t username@hostname "sudo su - otheruser -c \"cd /path/to/directory && command\""
Run Code Online (Sandbox Code Playgroud)
不起作用,因为 sudo 在服务器上被禁用:
有人有解决办法吗?
日复一日,我们公司的服务器开始询问我的 SSH 密码。
我检查的第一件事是查看我的密钥是否在.ssh/authorized_keys
服务器内。我的钥匙在里面,没有任何变化。也/etc/ssh/sshd_config
没有任何改变。
然后我尝试在新安装的 Ubuntu16 服务器上执行此过程。完成这 5 个步骤后,新服务器再次询问我 SSH 密码。
该ssh-copy-id
命令终于完成了无密钥 SSH 登录,但我注意到它.ssh/authorized_keys
有三行:一行以 开头ssh-dss
,两行以ssh-rsa
现在我记得上面链接中的 5 个步骤程序过去只用一把钥匙就可以工作。
最近有什么变化吗?为什么上面的过程不再起作用?
编辑:由于ssh-copy-id
总共将 3 个密钥复制到.ssh/authorized_keys
这些密钥,可以在以下文件中找到:
~/.ssh/id_dsa
~/.ssh/sshkey.pub
~/.ssh/id_rsa.pub
.ssh/authorized_keys
所以我从远程文件中逐行删除
删除~/.ssh/id_dsa
行-自动登录成功
删除~/.ssh/id_rsa.pub
行-自动登录成功
删除~/.ssh/sshkey.pub
行 - 自动登录未成功 - 要求输入密码
仅来自的内容~/.ssh/sshkey.pub
是必要的。为什么 SSH 是比较的sshkey.pub
而不是id_rsa.pub
像在线教程的示例中那样?
我有以下设置:/etc/iptables/rules.v4
# Generated by iptables-save v1.4.21 on Mon Jul 1 11:32:00 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3:620]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.35.107/32 -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -s 192.168.35.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -s 192.168.35.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -j DROP
COMMIT
# Completed …
Run Code Online (Sandbox Code Playgroud) 我正在分析一个脚本,但在网上找不到chgrp 0
以下行的含义:
find $1 -follow -exec chgrp 0 {}
Run Code Online (Sandbox Code Playgroud)
所以
find $1
接受参数,
-follow
导致 find 遵循符号链接,
-exec
执行命令,
chgrp 0
更改组所有权,但 0 怎么办?,
{}
对于 find 命令找到的所有项目。
如果我有什么不对的地方,请纠正我。