ユーザー名に@記号が含まれる場合、サーバーにsftpで送信するにはどうすればよいですか


25

特定のポートにサーバーにsftpする必要がありますが、ユーザー名に@記号が含まれています。

ユーザーが「user@example.com」であり、ftpサーバーが「example.com」であるとします

で終わります

sftp -oPort:8777 user@example.com@example.com

私がテストしたように、明らかに動作しないもの。

どのようなアマチュアが@でユーザー名を作成しますか?わかった、上司がやった。

どうすれば解決できますか?


1
そのように「商用」をエスケープしてみてくださいsftp -oPort:8777 user\@domain.com@domain.com
ティム

ユーザー名の部分を削除してドメインをそのままにする場合、コマンドを入力するとユーザー名の入力を求められますか?
ラダギニ

@ladaghini-これはスクリプト内で使用されます...利用可能なプロンプトはありません。スクリプトにユーザー名とパスワードを含めることの意味はわかっていますが、このユーザー名の領域は限られています。このサーバーはsftpのユーザー名を生成するだけなので、sftpでなければなりません。
SpaceDog

@ティム...それをエスケープしても助けにはなりません。
SpaceDog

回答:


33

-o Userオプション、またはUserクライアント構成ファイル(~/.ssh/config)の同等のディレクティブを介してユーザー名を渡します。

sftp -o Port:8777 -o User=user@example.com example.com

これはに適用されsshscpそしてsshfs同様。-oオプションの代わりに構成ファイルを使用するsshことには、コマンドラインオプションを呼び出して簡単に渡せないツールを使用するという利点もあります。


このユーザー名はsshアクセスではなく、sftpのみです。
SpaceDog

@DigitalRobot s / ssh / sftp /
ladaghini

@DigitalRobotこれは、sshおよびsftp(そしてscp)の両方で機能します。
ジル「SO-悪であるのをやめる」

続ける。passwdのも含まれている場合、我々は何をすべき「@」または「/」
石城郭

@shichengguo ??? 問題ありません@/パスワードでは。入力するだけです。SSHでは、コマンドラインオプションまたは構成ファイルでパスワードを渡すこともできません。
ジル 'SO-悪であるのをやめる'

6
sftp -o Port:8777 'user@domain.com'@domain.com

これも機能しますが、このタイプの名前をユーザーにプロビジョニングするのは非常に貧弱です。


0

一部のSFTPサーバー@では、( "commercial at")を+( "plus sign)"に置き換えることが許容される場合があります。

sftp -oPort:8777 user+example.com@example.com
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.