仮想マシンのIPアドレスでsftpを試すと正常に動作します(sftpが提供するすべての操作を実行できます)。ただし、zshでzftpを使用して同じIPアドレスを取得しようとすると、接続は拒否されます。さまざまなスタイルのコマンドを試しましたが、そのうちの何も動作しません。例は次のとおりです。
❯ autoload -U zfinit ; zfinit
❯ zftp open 10.211.55.8
zftp open: connect failed: connection refused
私が試した他のコマンドスタイル:❯ zftp open '10.211.55.8'
とzftp open '[10.211.55.8]'
注:zsh 5.8は両方のシステムにインストールされます。 zftp は両方のシステムで動作しません。sftp は他のシステムに接続しようとするすべてのシステムで動作します。
システム情報:接続する仮想マシンはArch Linuxです(zshがインストールされ、デフォルトのシェルとして実行されています)。私が接続したいコンピュータはmacOS 11.6で、このコンピュータのデフォルトのシェルもzshです。
答え1
zsh/zftp
はファイル転送プロトコル顧客。sftp
はSFTP顧客。 FTPとSFTPはまったく異なるプロトコルです。 SFTPはSSHベースのファイル転送プロトコルですが、SSHベースのFTPではありません。
zftp open 10.211.55.8
10.211.55.8にFTPサーバーがある場合にのみ機能しますが、sftp 10.211.55.8
SSHサーバーを搭載したほとんどの非組み込みシステムで動作します(通常はデフォルトで有効になっているOpenSSHの機能です)。 rshと同様に、FTPはほとんどSSH1,2に置き換えられました。
zftp
開発は主にFTPの相対的な複雑さのために行われた。 SFTPと同様の操作を行うことはあまり意味がありません。通常、SFTPアクセス権を持っている場合は、SSHシェルアクセスとSCPアクセス権もあり、それを使用してscp
ファイルをコピーできます(zshは完成機能を提供するため、あまり必要ありませんls
)。
SFTPをよりスムーズにするには、次のものを使用できます。SSHFSリモートサーバーのディレクトリツリーをローカルにマウントします。サーバーでSFTPを有効にする必要があります。ヒューズクライアントから。通常、ディストリビューションsshfs
パッケージをインストールするだけで十分です。
sudo pacman -S sshfs
mkdir -p ~/net/vm
sshfs 10.211.55.8: ~/net/vm
ls ~/net/vm/somedir
cp somefile ~/net/vm/somedir
1 FTPは認証なしで一般的に使用されていましたが、ほとんどがHTTP(S)に置き換えられました。2FTPでTLSを使用するための標準があります
。 FTPSしかし、実際にそのようなことは起こりませんでした。