SSHコンソールログインは機能するが、SFTPが機能しないのはなぜですか?


17

FilezillaでSFTPを実行しようとしていますが、サーバーに接続できません。これはファイアウォールのルールによるものだと思いますか?

私は絶対にうまくSSHできます。SSHのポートは6128です。SSHが既に機能している場合、SSH経由のFTP接続を許可するために必要な変更を教えてください。

(ここに私のIPtablesルールがあります)

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             loopback/8           reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             udp dpt:9987
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:10011
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:30033
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:6128
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

「:(サーバーが送信:公開)いいえが使用可能な認証方法をサポート切断:」Filezillaのからの応答があるしかし、私は私のSSHコンソールのログインのための作品(Windowsのパテところで)と同じキーを使用しています
tentimes

1
SFTPはFTP over SSHではありません。どこでも「FTPを許可」する必要はありません。Filezillaが「サポートされている認証方法はありません」と言っているという事実は、サーバーに正常に接続されていることを示しており、問題はファイアウォールとは無関係です。公開鍵を使用するためにFilezillaをどのように設定しましたか?
サーカスキャット

こんにちは、Unix&Linuxへようこそ。混乱を招くb / c SFTPは、その名前のコンポーネントをプロトコルFTPと共有しますが、それを超えて互いに関係はありません。SSHは、ポート22で実行される単一のプロトコルであり、インタラクティブシェルの形式で安全に接続したり、同じ接続を介してファイルを転送したりする機能を提供します。リモート側のSSHサーバーはSFTP接続を許可する必要があるため、SSHサーバーのログを調べて、Filezillaがサーバーに安全に接続するための適切なキーを持っていることを確認することに加えて、失敗の理由を調べます。
slm

また、サーバー自体からSFTPが適切にセットアップされていることsftpを確認します。サーバー上のコマンドラインツールを使用して接続できます。これは、Filezillaを導入する前に確認するのに役立ちます。digitalocean.com/community/tutorials/…
slm

回答:


10

他のホストからsftpにアクセスするには、以下が適切にインストールおよび設定されていることを確認してください。

  • インストール済みのOpenSSHサーバー
  • 構成済みのsshd_config
    • PubkeyAuthenticationはい
    • サブシステムsftp internal-sftp
  • 公開キーを〜/ .ssh / authorized_keysに追加しました

  • ポート22 / TCPを開いてsshサーバーを起動します # /etc/init.d/sshd start

  • # iptables -I INPUT -j ACCEPT -p tcp --dport 22

最後に、テスト $ sftp <login>@<hostname>


別の良いアイデアは、[[$-!= i ]] && return を使用して対話型セッションをチェックすることです。
OMG-1

1
Subsystem sftp internal-sftp私のためにやった。/usr/libexec/openssh/sftp-serverデフォルトでは設定されていましたが、存在しませんでした
-quietContest

Subsystem sftp internal-sftpsshd_configへの追加も、Centosに他の変更を加えることなく機能しました。
コーガロール

2

私の場合、ユーザーはzsh.bashrcファイルの先頭にいたため、bashの代わりにzshシェルにドロップできました。

bashはデフォルトのシェルでした。これを削除することで問題が解決しました。次にchsh user -s /bin/zsh、ユーザーがzshをデフォルトのシェルとして保持するようにします。


他のシェルと同じ問題(などfish)。
ポール

1

次のような.profileファイルのいずれかに、コンソールに送信されるテキスト(エコーステートメントなど)があります.bashrcか?これはsftp接続を混乱させる可能性があります。serverfaultに関する同様の質問への私の答えを参照してください


本当にこれに注意してください。fishこのような他のコンソールを自動起動すると、同様の問題が発生します。
ポール

1

ウイルス対策ソフトウェアもこれを引き起こす可能性があります。私たちは最近それに直面しました。sshPuTTY経由では正常に機能していましたが、WinSCPは接続できませんでした。Anti-Virusで例外が設定されると動作を開始しました。


0

filezillaを使用している場合、次の回答が役に立ちました。

https://www.digitalocean.com/community/questions/able-to-access-via-ssh-but-not-filezilla

Filezillaで、[編集]メニューの[設定]を選択し、左側のパネルで[接続]、[SFTP]の順に展開します。右側で、正しい秘密キーファイルがあることを確認するか、正しいエントリがない場合は追加します。

DO Webコンソールを使用して、rootとしてログインし、「tail -f /var/log/auth.log」を実行します。次に、Filezillaでログインして、メッセージをメモしてください。

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