GNU/Linux >> Belajar Linux >  >> Linux

menambahkan kata sandi ke .ssh/config

Solusi 1:

Tidak, Tidak ada metode untuk menentukan atau memberikan kata sandi pada baris perintah dengan cara non-interaktif untuk otentikasi ssh menggunakan mekanisme bawaan openssh. Setidaknya tidak satu pun yang saya ketahui. Anda dapat meng-hardcode kata sandi Anda ke dalam skrip yang diharapkan tetapi itu juga bukan solusi yang baik.

Anda pasti ingin menggunakan keypairs untuk autentikasi tanpa kata sandi seperti yang dikatakan Michael, pada akhirnya kunci pribadi adalah kata sandi yang cukup besar dalam file.

Solusi 2:

Untuk menghindari rentetan komentar:Ya, ini tidak aman (bahkan tidak bisa dibilang tidak aman). Saya sangat menyarankan Anda hanya melakukannya dalam situasi lab di jaringan terisolasi atau situasi serupa yang tidak melibatkan server produksi atau server produksi potensial tanpa pengaturan ulang/format penuh.

Saya ingin mengatur ini karena menurut saya sakelar 2950 saya tidak mendukung kunci privat/publik dan saya berharap pada titik tertentu mendapatkan pengetahuan itu, tetapi saya belum sampai di sana.

Dengan menggunakan alias dan sshpass, hal ini dapat dilakukan.

  1. Pasang sshpass
  2. Ubah .ssh/config Anda file untuk memasukkan nama pengguna seperti yang tercantum dalam pertanyaan
  3. Tambahkan alias ke terminal Anda (saya menggunakan .bashrc dan akan merekomendasikan terhadap pengaturan gloabl)
  4. Gunakan alias untuk masuk ke target

Contoh alias saya adalah:

alias ssc='sshpass -pcisco ssh'

Di mana "cisco" adalah kata sandinya. Perhatikan tidak ada spasi antara -p dan kata sandi.

Penggunaannya adalah (referensi pertanyaan):

ssc server1

Catatan:Ini menjawab pertanyaan di judul hanya untuk mereka yang menggunakan mesin pencari. Jika Anda menggunakan server seperti contoh pertanyaan, pasangan kunci privat/publik dan bukan jawaban ini yang harus digunakan

Solusi 3:

Ya, seperti yang disebutkan di atas, tidak ada cara sederhana untuk menyimpan kata sandi. Saya akan merekomendasikan menggunakan kunci ssh untuk otorisasi.

pertama, buat kunci Anda :

ssh-keygen

Kemudian salin kunci di sekitar server/desktop Anda :

ssh-copy-id -i .ssh/id_rsa.pub [email protected]:

Itu saja. Anda tidak akan pernah dimintai kata sandi lagi.

Saya juga menyarankan untuk menghapus otorisasi sandi secara umum, tetapi itu terserah Anda.

Solusi 4:

Tidak ada cara untuk melakukan ini dengan ssh, ini sangat tidak aman.

Seperti yang Danila sebutkan, Anda dapat menggunakan skrip ekspektasi tetapi saya tidak akan repot.

Saya ingin tahu apa yang ingin Anda capai? Apakah Anda ingin berpindah dari satu server ke server lainnya? Dalam hal ini Anda ingin mengatur dan menggunakan ssh-agent di workstation Anda dan mengaktifkan penerusan agen di host target; dengan cara ini pertukaran kredensial dialihkan ke agen lokal Anda tanpa harus menyalin kunci pribadi Anda.

Solusi 5:

Saya menggunakan skrip ini dari ~/.local/bin direktori

#!/usr/bin/bash

ORIG_SSH=/usr/bin/ssh
HOST=$1

SSHPASS=$(grep -Pzo "Host $HOST"'\s*\n((?!Host).*\n)*#PS\s(\N+)\n' ~/.ssh/config|tail -n 2|head -n 1 | sed 's/#PS //')
if [ -n $SSHPASS ]; then
    export SSHPASS
    sshpass -e $ORIG_SSH [email protected]
else
    $ORIG_SSH [email protected]
fi

Yang memungkinkan saya menentukan frasa sandi sebagai #PS <password> di .ssh/config berkas.

Tapi, seperti yang dikatakan semua orang, lebih baik menggunakan ssh-keys dengan ssh-agent jika memungkinkan


Linux
  1. Cara Mengatur Login SSH Tanpa Kata Sandi

  2. Otomatisasi kata sandi SSH di Linux dengan sshpass

  3. Ssh – Membatasi Pengguna Ssh/scp/sftp ke Direktori?

  1. Ssh – Beberapa Entri Serupa Dalam Ssh Config?

  2. Bagaimana Cara Mengetik Kata Sandi Untuk Banyak Windows?

  3. Cara Menonaktifkan Login SSH Dengan Kata Sandi

  1. Perintah sshpass:Otentikasi Kata Sandi Non-interaktif dengan SSH

  2. Rsync dengan SSH meminta kata sandi jarak jauh

  3. Menjalankan dua server SSH