Artikel ini menunjukkan cara memecahkan masalah Secure Shell (SSH) di server Linux®.
Berbagai jenis kesalahan
Jika Anda tidak dapat memasukkan SSH ke server, Anda harus memperhatikan kesalahan (atau kekurangannya) yang Anda terima. Daftar berikut menjelaskan beberapa kemungkinan kesalahan.
Akses ditolak atau Otentikasi ditolak
Jenis kesalahan ini terjadi setiap kali Anda masuk melalui SSH dengan kredensial yang salah. Jika Anda mendapatkan kesalahan ini, Anda dapat memeriksa berikut ini:
- Pastikan Anda telah mengetik nama pengguna dan sandi dengan benar.
- Jika Anda menggunakan pasangan kunci SSH, pastikan Anda telah menginstal kunci pribadi di komputer lokal Anda.
Port 22:Sambungan ditolak
Kesalahan ini terjadi karena alasan berikut:
- SSH tidak diinstal atau dijalankan.
- SSH mendengarkan pada port yang berbeda.
- Aturan firewall tidak mengizinkan SSH.
Kesalahan Jaringan:Waktu sambungan habis
Kesalahan ini sering terjadi karena masalah konektivitas jaringan di server atau mesin lokal Anda. Setiap kali Anda menerima kesalahan ini, pastikan komputer lokal Anda terhubung ke Internet. Jika terhubung, periksa juga koneksi server untuk memastikan server berjalan.
Periksa dari luar
Berikut adalah beberapa cara umum untuk memecahkan masalah SSH dari luar server Anda:
nmap
nmap
adalah alat eksplorasi jaringan dan keamanan atau pemindai port. Anda dapat menggunakan alat ini untuk memeriksa apakah port untuk SSH terbuka di server. Contoh berikut memberikan perintah dan outputnya:
$ nmap <ip-address-of-host>
Starting Nmap 6.40 ( https://nmap.org ) at 2020-03-21 23:44 UTC
Nmap scan report for <ip-address-of-host>
Host is up (0.033s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 4.35 seconds
ssh -vvv
Menggunakan ssh
dengan -vvv
flags menghasilkan keluaran verbose saat Anda memasukkan SSH ke server. Perintah ini dapat memberikan beberapa informasi berguna untuk memecahkan masalah dengan tepat di mana masalahnya.
Periksa dari dalam
Jika Anda mengalami masalah dengan SSH, Anda dapat masuk menggunakan konsol darurat untuk memecahkan masalah server guna memeriksa kondisi berikut:
Proses SSH
Pertama, pastikan proses SSH berjalan dengan menjalankan perintah berikut:
- Untuk Ubuntu® 16.04+, Debian® 8+, dan Centos® 7+:
systemctl status sshd
- Untuk Centos 6:
service sshd status
Jika Anda tidak melihat layanan berjalan, Anda dapat memulai proses dengan menggunakan perintah berikut:
- Untuk Ubuntu 16.04+, Debian 8+, dan Centos 7+:
systemctl start sshd
- Untuk Centos 6:
service sshd start
netstat
netstat
perintah menunjukkan kepada Anda koneksi saat ini di server. Perintah ini adalah cara yang baik untuk memeriksa dan melihat port SSH mana yang sedang berjalan. Saat Anda menjalankan netstat
, gunakan flag -plnt
untuk mendapatkan output berikut:
# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::22 :::* LISTEN 13631/sshd
File konfigurasi SSH
File konfigurasi SSH, /etc/ssh/sshd_config , mengatur konfigurasi SSH. Ada banyak opsi dalam file konfigurasi, tetapi berikut adalah beberapa yang harus diperhatikan:
Port 22 <---- The port ssh runs on
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
~
~
~
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes <---- Allows or block users logging in as root
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication yes <---- Will state whether or not a user needs an ssh key to log in
Atau, Anda dapat menggunakan grep
perintah untuk mencari baris khusus ini. Saat Anda menggunakan grep
perintah, Anda harus spesifik saat mencari frasa tertentu. Hati-hati dengan tanda baca, kapitalisasi, dan ejaan.
$ sudo grep Port /etc/ssh/sshd_config
# Port 22
Firewall
Jika Anda memiliki konektivitas jaringan, semua konfigurasi sudah benar, dan Anda masih tidak dapat terhubung melalui SSH, Anda mungkin ingin melihat aturan firewall di server. Di server Linux, iptables memiliki aturan-aturan ini. Untuk membuat daftar aturan firewall di iptables , jalankan perintah iptables -L
. Untuk mempelajari lebih lanjut tentang iptables , baca Pengenalan iptables.
fail2ban
fail2ban
adalah aplikasi yang memblokir alamat IP setelah sejumlah upaya login yang gagal. Untuk memeriksa jail, Anda dapat menjalankan perintah fail2ban-client status
. Perintah ini menunjukkan kepada Anda semua jail yang dikonfigurasi di server, dan alamat IP yang ada di jail tersebut.
File log
Ketika semuanya gagal, buka file log. File-file ini memberikan informasi tentang apakah Anda mencapai server atau tidak, jika Anda menggunakan kata sandi yang tidak valid, dan sebagainya. File log yang harus Anda tinjau mencakup file berikut:
- Ubuntu atau Debian:/var/log/auth.log
- CentOS atau RHEL®:/var/log/secure
Saat mencari melalui file log ini, Anda dapat menggunakan less
perintah untuk mengurai seluruh file dan mencari waktu atau string tertentu. Jika Anda telah masuk ke server dari konsol, Anda dapat menggunakan tail -f
pada log saat Anda mencoba memasukkan SSH ke server. Kemudian, Anda dapat melihat pembaruan file log secara real time.