SSHはユーザー名/ホスト名の組み合わせを許可しますが、SCPがこれを許可しないのはなぜですか?

SSHはユーザー名/ホスト名の組み合わせを許可しますが、SCPがこれを許可しないのはなぜですか?

私はsshCyber​​Arkを介してLinuxホストにログインすることに慣れています。これがユーザー名/ホスト名の組み合わせが次の理由です。DB6164@DB6164CP#[email protected]#[email protected]

次のsshコマンドが有効です。

$ /usr/bin/ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no DB6164@DB6164CP#[email protected]#[email protected]

ただし、次のscpコマンドは失敗します。

$ /usr/bin/scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no DB6164@DB6164CP#[email protected]#[email protected]:/tmp/file.txt file.txt
DB6164@DB6164CP#[email protected]#22: invalid user name

ホスト名から「#」を削除すると文句は停止しますが、scpCyber​​Arkは失敗します。

scpまた、URI形式を試してみましたscp://[user@]host[:port][/path]

$ /usr/bin/scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no scp://DB6164@DB6164CP#[email protected]#[email protected]/tmp/file.txt file.txt
scp://DB6164@DB6164CP#[email protected]#[email protected]/tmp/file.txt file.txt: invalid uri

しかし、これも失敗した。

なぜscp失敗し、いつssh成功し、上記のscpコマンドを機能させるにはどうすればよいですか?

修正する:複数のホスト(Cyber​​Arkを介して接続されている)に対して上記のタスクを実行する必要があります。

ベストアンサー1

scp -o User='foo@bar@baz#quux' host:/rpath lpath

scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
  -o User='DB6164@DB6164CP#[email protected]#22' \
  PsmpDblanVip.example.net:/tmp/file.txt file.txt

おすすめ記事