SSH konsolu girişi çalışıyor ancak SFTP çalışmıyor, neden?


17

Ben Filezilla ile SFTP çalışıyorum ama sunucuya bağlanmak mümkün değil ve bu benim güvenlik duvarı kuralları nedeniyle olduğunu düşünüyorum?

SSH'yi kesinlikle iyi yapabilirim. SSH'nin bağlantı noktası 6128'dir. SSH'nin zaten çalıştığı düşünüldüğünde SSH üzerinden bir FTP bağlantısına izin vermek için ne tür değişiklikler yapmam gerektiğini söyleyebilir mi?

(İşte IPtables kurallarım)

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 yanıt: "Bağlantı kesildi: Desteklenen kimlik doğrulama yöntemleri yok (sunucu gönderildi: publickey)" Ama SSH konsol oturum açma (Windows btw üzerinde PuTTy) için çalışan aynı anahtarı kullanıyorum
Haziran'da tentimes

2
SFTP, SSH üzerinden FTP DEĞİLDİR . Hiçbir yerde 'FTP'ye izin' vermeniz gerekmez. Filezilla'nın "Desteklenen kimlik doğrulama yöntemi mevcut değil" yazması, sunucunun para cezasına bağlı olduğunu ve sorunun güvenlik duvarınızla ilgisi olmadığını gösterir. Filezilla'yı ortak anahtarınızı kullanacak şekilde nasıl ayarladınız?
Circus Cat

Merhaba, Unix ve Linux'a hoş geldiniz. Kafa karıştırıcı olur b / c SFTP, adının bir bileşenini FTP protokolü ile paylaşır, ancak bunun ötesinde birbirleriyle hiçbir ilgisi yoktur. SSH, bağlantı noktası 22 üzerinde çalışan tek bir protokoldür ve etkileşimli bir kabuk şeklinde güvenli bir şekilde bağlanma veya aynı bağlantı üzerinden dosya aktarma yetenekleri sağlar. Uzak taraftaki SSH sunucusunun SFTP bağlantılarına izin vermesi gerekiyor, bu yüzden Filezilla'nın sunucuya güvenli bir şekilde bağlanmak için uygun bir anahtara sahip olduğundan emin olmanın yanı sıra neden başarısız olduğuna ilişkin bilgiler için SSH sunucusunun günlüklerine bakarım.
slm

Ayrıca bir göz atın ve SFTP sunucunun kendisinden düzgün bir şekilde sftpkurulduğunu doğrulamak , evet bağlamak için sunucudaki komut satırı aracını kullanabilirsiniz , bu da Filezilla'yı karışıma getirmeden önce şeyleri doğrulamaya yardımcı olur. digitalocean.com/community/tutorials/… .
slm

Yanıtlar:


10

Sftp'nize diğer ana bilgisayarlardan erişmek için, lütfen aşağıdakilerin doğru yüklendiğinden ve yapılandırıldığından emin olun.

  • Yüklü OpenSSH sunucuları
  • Yapılandırılmış sshd_config
    • PubkeyAuthentication evet
    • Alt sistem sftp internal-sftp
  • Genel anahtarınızı ~ / .ssh / yetkili_anahtarlara ekledi

  • Ssh sunucusunu 22 / TCP bağlantı noktası açıkken başlatın # /etc/init.d/sshd start

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

Son olarak, test edin $ sftp <login>@<hostname>


Başka bir iyi fikir, [[$ -! = İ ]] && return kullanarak etkileşimli oturumu kontrol etmektir .
OMG-1

1
Subsystem sftp internal-sftpbenim için yaptım. /usr/libexec/openssh/sftp-serverVarsayılan olarak ayarlanmadı , ki bu bile yoktu
quietContest

Subsystem sftp internal-sftpSshd_config'e eklemek de Centos'ta başka değişiklik olmadan benim için çalıştı.
Corgalore

2

Benim durumumda, kullanıcı zshbash yerine zsh kabuğuna düşebilmesi için .bashrc dosyasının en üstünde yer aldı.

bash varsayılan kabuğuydu. Bunu kaldırmak sorunu çözdü. Sonra chsh user -s /bin/zshkullanıcı için varsayılan kabuk olarak zsh tutmak için.


Diğer mermilerle aynı problem (örneğin fish).
Paul

1

Gibi .profile dosyalarınızdan herhangi birinde konsola giden herhangi bir metin var mı (örneğin echo ifadeleri) .bashrc? Bu, sftp bağlantısıyla uğraşabilir. Benim Bkz cevap ServerFault benzer bir soruya


Buna dikkat edin. Bu tür başka bir konsolu otomatik olarak başlatırsanız fishbenzer sorunlara neden olur.
Paul

1

Virüsten koruma yazılımınız da buna neden olabilir. Son zamanlarda karşı karşıya kaldık. sshPuTTY üzerinden iyi çalışıyordu, ancak WinSCP bağlanamadı. Anti-Virüs'te bir istisna yapılandırıldıktan sonra çalışmaya başladı.


0

Filezilla kullanıyorsanız, aşağıdaki cevap bana yardımcı oldu:

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

Filezilla'da, Düzenle-> Ayarlar menüsünde, sol panelde Bağlantı-> SFTP'ye genişletin. Sağ tarafta doğru özel anahtar dosyasına sahip olduğunuzdan emin olun veya doğru girişi kaçırırsanız ekleyin.

DO web konsolunu kullanarak root olarak giriş yapın ve 'tail -f /var/log/auth.log' yapın. Ardından Filezilla ile giriş yapmayı deneyin ve tüm mesajları not edin.


0

Sunucu hatası ile ilgili benzer bir soruya cevabım :

Ben sadece bu sorunla karşılaştım (özellikle sftp için ama ssh için değil, sorun olmadan bağlanabildim) ve buradaki çözümlerin hiçbiri benim için çalışmadı. Benim durumumda çok fazla ssh anahtarının (IdentityFile's) bulunmasıydı ~/.ssh/. Anlaşılan ~/.ssh/config, doğru anahtarla bağlanmaya çalıştığınız ana bilgisayar için bir ana bilgisayar girişiniz olmadığında, tüm anahtarlarınızı tek tek gönderir. 6'dan fazla anahtar vardı ve emin, varsayılan MaxAuthTries6 (en azından Ubuntu).

Çözüm, sunucuyu düzenlemek /etc/ssh/sshd_configve artırmaktı MaxAuthTries. Benimkini 10'a ayarladım.

#MaxAuthTries 6
MaxAuthTries 10

(Ya da elbette, sadece sağ tuşla bir ana bilgisayar girişi ekleyin - bu durumda bir anahtar kullanmadan giriş yapmaya çalışıyorum).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.