ssh 和 scp 命令的区别

Difference between ssh and scp command

我正在玩 overthewire 的强盗战争游戏。在级别 18 中,bashrc 文件的配置方式是,它会在验证密码后立即注销尝试登录的用户。 例如:

ssh bandit18@bandit.labs.overthewire.org -p 2220

不起作用。用户将立即注销。所以,我用scp试了下,密码不对。

scp bandit18@bandit.labs.overthewire.org:2220/home/bandit18/readme .

尽管我设法使用我拥有的密码成功登录。下面的命令终于可以用了,这个我也不知道

ssh bandit18@bandit.labs.overthewire.org -p 2220 "cat ~/readme"

怎么会,"cat ˜/readme" 成功了,不用登录就可以读取文件或者这里有什么程序?

所以我的问题是: 1) 为什么相同的密码对 ssh 有效但对 scp 无效? 2) 为什么 ssh 不工作,但是指定 cat 命令的 ssh 工作?

谢谢。

PS:如果有人想要这里的密码:kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd

  1. scp 正在工作:scp -P 2220 bandit18@bandit.labs.overthewire.org:/home/bandit18/readme .

  2. .bashrc 包含 exit 0 因此 bash 在您通过 ssh 登录后立即退出:

    > ssh bandit18@bandit.labs.overthewire.org -p 2220 "tail -n 2 .bashrc"
    This is a OverTheWire game server. More information on http://www.overthewire.org/wargames
    
    bandit18@bandit.labs.overthewire.org's password: 
    echo 'Byebye !'
    exit 0