Saya tidak bisa ssh apapun yang saya bisa. Setelah menggali sedikit saya menemukan bahwa itu tidak membaca ssh config dari direktori home saya.
$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)
Saat berada di komputer teman yang identik, di mana semuanya berfungsi akan terlihat seperti ini:
$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)
Ini bekerja lebih awal dan saya tidak mengetahui apa pun yang bisa saya lakukan untuk menyebabkan masalah ini. Bagaimana ini bisa terjadi, dan bagaimana cara memperbaikinya?
Dalam tautan dokumentasi yang ditunjukkan oleh tike, disebutkan bahwa
Karena potensi penyalahgunaan, file ini harus memiliki izin ketat: baca / tulis untuk pengguna, dan tidak dapat diakses oleh orang lain.
Izin saya adalah:
$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba 1029 1428 Jul 1 16:33 ..
-rwx------ 1 kuba 1029 1528 May 15 13:07 config
(...)
Saya pikir masalahnya mungkin dengan kebingungan tentang direktori home. Ketika saya memaksakan file konfigurasi lokal mulai berfungsi, dan kemudian tiba-tiba mulai membaca dari/nas/kuba
$ ssh -xvvvF ~/.ssh/config server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
debug1: /Users/kuba/.ssh/config line 1: Applying options for *
debug1: /Users/kuba/.ssh/config line 39: Applying options for bio
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXXX [YYYY.YYY.YYY.YYY] port 22.
debug1: Connection established.
debug1: identity file /nas/kuba/.ssh/id_dsa type -1
^^^^^^^^^^
Tapi dir home saya tampaknya diatur ok:
$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba
ssh
mengabaikanHOME
variabel lingkungan. Adalah praktik yang buruk untuk diabaikanHOME
, tampaknya itulah yangssh
terjadi. Jika tidak digunakanHOME
, satu - satunya alternatif yang saya ketahui adalah mencarinya dari menuuid
. Jika Anda memiliki dua entri/etc/passwd
dengan identikuid
, maka keduanya akan berakhir menggunakan.ssh/config
file yang sama bahkan jika mereka memiliki rumah yang berbeda.Jawaban:
Anda tampaknya terjebak di antara pengguna tertentu vs ssh_config global.
Silakan periksa pengaturan izin file konfigurasi pengguna Anda (
~/.ssh/config
) dan file konfigurasi seluruh sistem Anda (/etc/ssh/ssh_config
) untuk memahami lebih detail.Anda dapat membaca lebih lanjut tentang ini di sini . Secara praktis, semua file di bawah
.ssh
direktori berbasis pengguna Anda harus di 600, danconfig
file harus di 644. Anda dapat mengatur ini dengan perintah berikut di direktori home Anda:sumber
periksa izin
dan
Jika izinnya buruk maka klien ssh tidak akan mencoba membacanya
sumber
Saya memiliki masalah yang sama dan saya bisa memperbaikinya dengan mengatur + x flag pada
~/.ssh
dir saya (0700), sementara juga mengatur 0600 aktif~/.ssh/config
.sumber
Untuk apa nilainya, saya memiliki masalah yang sama dan memperbaikinya dengan membuat ssh untuk membuat lagi
.ssh
folder (cukup ganti namassh
dan jalankan beberapa perintah ssh), dan menyalin file yang diperlukan setelahnya, dengan izin yang sesuai. (konfigurasi dengan 600).Rupanya ssh menjadi mencurigakan jika foldernya
.ssh
diubah dengan cara yang tidak disetujui ...sumber
SSH tidak akan membaca konfigurasi lokal jika itu pada sistem file yang dipasang NFS. Ini perlu diperiksa karena semua izin bisa saja dan SSH (setidaknya versi 6.6) tidak akan memberi Anda indikasi mengapa itu tidak membaca konfigurasi pengguna. (Akan, bagaimanapun, membacanya dari volume NFS jika Anda menggunakan
-F
opsi.)sumber
Saya mengalami masalah yang sama pada MacO. Dari melihat info debug login manual (ssh @), saya menemukan bahwa ternyata ssh berpikir bahwa direktori home saya sedang
/srv/home/<userid>
dan sedang mencari.ssh
direktori di sana, dan mengabaikan yang ada di/Users/<userid>/.ssh/
Mungkin ada hubungannya dengan pekerjaan mengatur Mac dengan cara tertentu, tapi saya sarankan memeriksa itu
ssh
dan Sistem Operasi menyetujui di mana direktori home;)sumber
Seperti 'kasperd' ditunjukkan dalam komentarnya pada pertanyaan, perhatikan bahwa
ssh
tidak perlu mencari '$ {HOME} /. Ssh / config'. Seperti yang ditemukan, penting untuk menggali lebih dalam dan mempelajari di mana direktori home berada pada saat login dan sebelum HOME baru dinyatakan.Petunjuk untuk melihat ke luar dari hasil
ssh -xvvvF ~/.ssh/config server
ini sangat mendalam dalam membantu menjawab pertanyaan yang sama ini. Setelah menemukan diri sendiri pada sistem di mana dua nama pengguna yang berbeda memiliki UID yang sama di file '/ etc / passwd', masalah ini muncul. Kedua pengguna memiliki direktori HOME berbeda yang diatur dalam '/ etc / passwd'.Dalam skenario seperti itu, ternyata jika seseorang masuk sebagai pengguna kedua dengan duplikat UID dalam file '/ etc / passwd',
ssh
gunakan direktori home dari pengguna pertama dengan UID yang cocok dari pengguna yang menjalankan SSH perintah.Memang, use case ini cukup aneh, dan tidak akan membantu bagi sebagian besar orang, tetapi itu benar-benar terjadi, dan Tanya Jawab ini membantu menyelesaikan masalah.
sumber
Ini disebabkan oleh pengaturan izin file.
Periksa
.ssh
dir dan file Anda izin, juga periksa pengaturan izin dir home Anda.Bagi saya, saya tidak ingin orang lain melihat file pribadi saya, jadi saya menghapus
x
izin dir rumah saya. Yang mengarahkan ssh untuk menemukan kunci yang diotorisasi ke jalur yang salah.Salah satu cara untuk memperbaikinya adalah dengan menetapkan jalur otoritas lain
/etc/ssh/sshd_config
, misalnya:kemudian salin pub Anda ke
/etc/ssh/authorized_keys
, bekerja untuk saya.sumber