GNU/Linux >> Belajar Linux >  >> Linux

Ubah direktori default saat saya SSH ke server

Solusi 1:

Ada dua cara untuk mencapai ini:

  • Ubah direktori home Anda di server ke /var/www/websites (ini bukan ide yang bagus)
  • tambahkan cd /var/www/websites ke akhir .bashrc Anda . Saya menggunakan yang ini di dalang kami karena saya selalu ingin berada di /etc/puppet/environments/dkaarsemaker di sana alih-alih homedir saya :-)

Solusi 2:

Jika Anda menggunakan kunci untuk login SSH maka Anda dapat mengubah jalur dengan menambahkan command= sebelum kunci di ~/.ssh/authorized_keys di jarak jauh Anda server. Contoh:

command="cd /var/www/websites ; /bin/bash -l" ssh-rsa AAA.....rest of the key

Tidak apa-apa untuk membuat dan menggunakan beberapa kunci untuk pengguna yang sama. Satu kunci di server mungkin berisi perintah yang lain mungkin tidak - dengan cara ini Anda memilih perilaku yang diharapkan saat masuk. Anda cukup membungkusnya dengan lokal ~/.ssh/config :

Host websites-my-host
    HostName <realhostname>
    IdentityFile ~/.ssh/<key1>  #on the server key with "command"
    User webmaster

Host my-host
    HostName <realhostname>
    IdentityFile ~/.ssh/<key2>  #on the server key without command
    User webmaster

Inilah yang akan terjadi:

local$ ssh websites-my-host
[email protected]:/var/www/websites$ _

atau:

local$ ssh my-host
[email protected]:~$ _

Solusi 3:

Openssh sshd secara default menerima variabel lingkungan ini dari klien:

AcceptEnv LANG LC_*

Anda dapat menggunakannya untuk mengirim nilai dari lingkungan lokal klien ke server seperti ini:

LC_CDPATH=/var/www/websites ssh -o SendEnv=LC_CDPATH [email protected]

Anda dapat menempatkan direktif SendEnv di ~/.ssh/config sehingga Anda tidak perlu menyertakannya di baris perintah.

Jika Anda menempatkan yang berikut di ~/.profile Anda (untuk hanya memengaruhi login interaktif gunakan .profile, untuk memengaruhi semua login gunakan .bashrc):

if [ "$LC_CDPATH" -a -d "$LC_CDPATH" ]; then
  cd "$LC_CDPATH";
fi

Kemudian secara otomatis akan mengubah direktori ke yang ditentukan dalam variabel lingkungan saat Anda masuk, jika ditentukan dan jika itu adalah direktori.

Solusi 4:

Sejak OpenSSH 7.6, Anda dapat menggunakan opsi RemoteCommand baru untuk mencapainya.

Di ~/.ssh/config Anda :

Host websites-my-host
    HostName <realhostname>
    IdentityFile ~/.ssh/keyfile
    User webmaster
    RequestTTY force # check if this is necessary
    RemoteCommand cd /var/www/websites && bash -l

Linux
  1. Kapan Menggunakan Nohup?

  2. Ubah nomor port server SSH default

  3. Memecahkan masalah SSH

  1. Putty:Ubah direktori login SSH default

  2. Bagaimana cara mengubah direktori root dari server Apache?

  3. Bagaimana saya memulai di bash ketika ssh'ing ke server saya?

  1. Cara Mengubah Direktori DocumentRoot di Apache di server Linux

  2. Cara Mengubah Direktori 'DocumentRoot' Apache Default di Linux

  3. Cara mengubah direktori jendela baru default dari dalam tmux