Memecahkan masalah akses
Halaman ini memberikan tips pemecahan masalah untuk masalah akses Solusi Bare Metal.
Periksa apakah pertanyaan atau masalah Anda telah ditangani di halaman Masalah umum dan batasan.
Klien SSH tidak dapat terhubung
Jika klien SSH gagal terhubung ke server, Anda mungkin melihat salah satu dari error berikut:
connection timeout
atauconnection refused
: Klien SSH tidak dapat terhubung.Permission denied (publickey)
: Klien SSH gagal mengautentikasi.
Untuk mendiagnosis koneksi SSH yang gagal, ikuti langkah-langkah berikut:
Uji konektivitas.
Pastikan host dapat dijangkau dan port SSH (22) terbuka menggunakan perintah
ping
,traceroute
, dannc
.ping SERVER_NAME
traceroute SERVER_NAME
echo "" | nc SERVER_NAME 22
Jika cara ini tidak berhasil, mungkin masalahnya ada pada lapisan jaringan, bukan pada SSH.
Periksa output debug sisi klien.
Aktifkan panjang protokol SSH.
ssh -v SERVER_NAME -i ~/.ssh/id_ecdsa
Perintah tersebut mencetak output debug yang menunjukkan peristiwa utama dari protokol SSH sisi klien.
Contoh output berikut menunjukkan bahwa klien mengirim kuncinya, tetapi server menolaknya. Server meminta autentikasi untuk melanjutkan dengan kunci publik lain, tetapi klien tidak memiliki kunci tambahan untuk ditawarkan.
.. .. .. debug1: Server host key: ecdsa-sha2-nistp256 SHA256:V9cRYdqcAJv+RPfN+oofNTVdUxs6VlocP4uMWOxeGKI debug1: Host 'bms-server' is known and matches the ECDSA host key. debug1: Found key in /root/.ssh/known_hosts:1 debug1: rekey after 134217728 blocks debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: rekey after 134217728 blocks debug1: SSH2_MSG_EXT_INFO received debug1: kex_input_ext_info: server-sig-algs=
debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering ECDSA public key: /root/.ssh/id_ecdsa debug1: Authentications that can continue: publickey debug1: No more authentication methods to try. Permission denied (publickey). Jika output panjang SSH tidak menunjukkan dengan jelas penyebab pesan error, jalankan perintah
strace
:strace ssh SERVER_NAME -i ~/.ssh/id_ecdsa > strace-ssh.txt 2>&1
Periksa output
strace
untuk menemukan error yang terkait dengan masalah inti.Dalam beberapa kasus, output debug sisi klien tidak cukup untuk mengidentifikasi masalah. Anda mungkin juga perlu menjalankan pelacakan sisi server untuk menemukan error. Hingga Anda tidak dapat menerapkan SSH ke server, gunakan konsol serial interaktif untuk melakukan langkah berikutnya.
Periksa output debug sisi server.
Temukan setelan SSH saat ini.
grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"
Untuk mendapatkan informasi mendetail tentang SSH, tetapkan parameter berikut dalam file
/etc/ssh/sshd_config
untuk mendapatkan informasi mendetail.SyslogFacility AUTH LogLevel DEBUG
Untuk menerapkan perubahan, mulai ulang layanan.
service sshd restart
Di sisi klien, jalankan perintah
ssh
dan ekstrak pesansshd
dari log:grep sshd /var/log/messages
Atau, Anda dapat mengekspor semua pesan yang relevan untuk jangka waktu tertentu menggunakan perintah berikut:
journalctl -u sshd -S "START_TIME" -U "END_TIME" --utc
Ganti kode berikut:
START_TIME
: Waktu mulai jangka waktu dalam formatyyyy-mm-dd hh:mm:ss
.END_TIME
: Waktu berakhir jangka waktu dalam formatyyyy-mm-dd hh:mm:ss
.
Contoh:
journalctl -u sshd -S "2023-04-25 18:38:00" -U "2023-04-25 18:40:00" --utc
Untuk memperbaiki masalah ini, pertimbangkan langkah-langkah berikut:
Verifikasi apakah file kunci klien disetel dengan izin hanya baca (tandai
400
). Jika tidak, klien SSH tidak akan menerimanya.Untuk menetapkan tanda hanya baca untuk kunci pribadi yang digunakan, jalankan perintah berikut:
chmod 400 ~/.ssh/id_ed25519
Di sisi server, periksa apakah kunci publik klien telah ditentukan dalam file konfigurasi lokal (
~/.ssh/authorized_keys
) milik pengguna yang sesuai.Dalam beberapa kasus, masalahnya mungkin terkait dengan versi protokol SSH atau algoritma SSH. Output debug sisi server dan sisi klien mungkin menunjukkan masalah tersebut. Biasanya, halaman
man
untukssh
dansshd_config
memberikan detail untuk mengelola konfigurasi yang diperlukan. Misalnya, untuk menemukan algoritma pertukaran kunci atau cipher yang didukung, gunakan perintah berikut:# Find key exchange algorithms ssh -Q kex # Find the symmetric encryption ciphers ssh -Q cipher