Published November 03, 2020 by with 0 comment

Ubuntu 18.04 : Setting Up SSH Server

 

    Hallo semua, pada kesempatan kali ini kami akan share tentang beberapa konfigurasi ssh server pada Ubuntu 18.04. Seperti biasa sebelum kita lanjut ke konfiguri kita review dulu apa itu ssh. Secure Shell (SSH) adalah suatu software aplikasi pengganti telnet, takjauh beda dari telnet, Tsh dan rLogin. SSH merupakan suatu protokol jarigan untuk melakukan remote shell pada sebuah jaringan, yang membedakaan SSH dengan Software Remote Login lain adalah SSH memiliki kemapuan enkripsi dan dekripsi pada end to end device yang membuat SSH itu lebih aman di banding telnel dan remote login lain. dan itulan yang membuat SSH aman dari sniffing. 

    SSH Server adalah suatu software yang berfungsi untuk menerima request dari client, yang bertugas mendeskripsi enkripsi client dan mengjalankan printah yang di instruksikan client. SSH Server Berjalan pada port 22 dengan TCP Koneksi. Selain itu SSH Juga bisa di pakai untuk melakukan pertukaran data seperti FTP, dengan menggunkan sfpt:// SSH Server dapat berjalan layaknya FTP dengan Secure. ssh

Ya Setelah kita tahu sedikit review tentang SSH, SSH server, berikutnya kita langsung ke Langkah-langkah untuk konfugurasinya, Untuk Topik yang akan dibahas sendiri adalah sebagai berikut :
- Password Authentication
- SSH File Transfer
- SSH Key-pair Authentication

Yang Lanjut, ke Langkah-langkahnya :
1. Password Authentication

Password Authentication untuk OpenSSH Server di Ubuntu secara default sudah aktif, jadi memungkinkan kita untuk masuk tanpa mengubah pengaturan apa pun. Berikutnya, user root tidak diizinkan, atau tidak mendapatkan akses Password Authentication  secara default dengan "PermitRootLogin prohibit-password", jadi pengaturan default baik untuk digunakan. Tetapi jika kita ingin user root untuk tidak bisa login melalui SSH, Dapat kita konfigurasikan seperti berikut.

```bash
root@alfaruq:~# apt-get install -y openssh-server
root@alfaruq:~# vi /etc/ssh/sshd_config

PermitRootLogin no
root@alfaruq:~# systemctl restart ssh
```

Dari segi client sendiri untuk dapat akses ke sshnya dapat seperti berikut :
 
```bash
root@client:~# ssh ubuntu@serverssh.example.com

The authenticity of host 'serverssh.example.com (10.20.20.50)' cant be established.
ECDSA key fingerprint is SHA256:cFINZxChloNp9GjMFkplmg3bsING9me+ld9asR2Hj08.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'serverssh.example.com,10.20.20.50' (ECDSA) to the list of known hosts.
ubuntu@serverssh.example.com password:
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64)
.....
.....
Last login: Tue Nov 3 14:38:33 2020

ubuntu@serverssh:~$

# diatas untuk Client linux, jika windows dapat menggunakan software seperti putty,
# atau untuk windows 10 terbaru sudah support melalui cmd dengan command yang sama
# Kita juga dapat eksekusi command secara remote
ubuntu@sshclient:~$ ssh ubuntu@serverssh.example.com "echo 'Hallo, from client'" 
```
2. SSH File Transfer
SSH file transfer ini mirip dengan FTP, kita dapat bertukar file, baik kirim atau terima, dengan menggunakan protokol SSH. berikut adalah contohnya :
```bash
ubuntu@serverssh:~$ scp ./test.txt ubuntu@client.example.com:~/
ubuntu@10.0.0.30 password:
test.txt                                                100%   10     0.0KB/s   00:00
# copy file dari client ke ssh server
ubuntu@serverssh:~$ scp ubuntu@client.example.com:/home/ubuntu/test.txt ./test.txt
ubuntu@10.0.0.30's password:
test.txt                                                100%   10     0.0KB/s   00:00
```
Sedangkan berikut, ketika menggunakan SFTP
```bash
 # sftp [Option] [user@host]
ubuntu@serverssh:~$ sftp ubuntu@client.example.com

ubuntu@client.example.com password: 

Connected to client.example.com.
sftp>
# Menampilkan posisi folder dimana kita berada

sftp> pwd

Remote working directory: /home/ubuntu

sftp> !pwd

/home/ubuntu
# Menampilkan daftar file yang ada

sftp> ls -l

drwxrwxr-x    2 ubuntu     ubuntu            6 Apr 29 21:33 public_html
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 28 22:53 test.txt


sftp> !ls -l

total 4
-rw-rw-r-- 1 ubuntu ubuntu 10 Jul 29 21:31 test.txt

# pindah folder

sftp> cd public_html

sftp> pwd

Remote working directory: /home/ubuntu/public_html

# mengirimkan hanya beberapa file saja
sftp> put test.txt ubuntu.txt

Uploading test.txt to /home/ubuntu/ubuntu.txt
test.txt 100% 10 0.0KB/s 00:00
sftp> ls -l

drwxrwxr-x    2 ubuntu     ubuntu            6 Apr 29 21:33 public_html
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:39 ubuntu.txt
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 28 22:53 test.txt

# upload semua file txt yang ada pada server ke client

sftp> put *.txt

Uploading test.txt to /home/ubuntu/test.txt
test.txt 100% 10 0.0KB/s 00:00
Uploading test2.txt to /home/ubuntu/test2.txt
test2.txt 100% 0 0.0KB/s 00:00
sftp> ls -l

drwxrwxr-x    2 ubuntu     ubuntu            6 Apr 29 21:33 public_html
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:39 ubuntu.txt
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:45 test.txt
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:46 test2.txt

# download file dari client ke server

sftp> get test.txt

Fetching /home/ubuntu/test.txt to test.txt
/home/ubuntu/test.txt 100% 10 0.0KB/s 00:00

sftp> get *.txt

Fetching /home/ubuntu/ubuntu.txt to ubuntu.txt
/home/ubuntu/ubuntu.txt 100% 10 0.0KB/s 00:00
Fetching /home/ubuntu/test.txt to test.txt
/home/ubuntu/test.txt 100% 10 0.0KB/s 00:00
Fetching /home/ubuntu/test2.txt to test2.txt
/home/ubuntu/test2.txt 100% 10 0.0KB/s 00:00

#buat folder di client

sftp> mkdir testdir

sftp> ls -l

drwxrwxr-x    2 ubuntu     ubuntu            6 Apr 29 21:33 public_html
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:39 ubuntu.txt
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:45 test.txt
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:46 test2.txt
drwxrwxr-x    2 ubuntu     ubuntu            6 Apr 29 21:53 testdir

# hapus folder pada client

sftp> rmdir testdir

rmdir ok, `testdir` removed
sftp> ls -l

drwxrwxr-x    2 ubuntu     ubuntu            6 Apr 29 21:33 public_html
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:39 ubuntu.txt
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:45 test.txt
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:46 test2.txt

# hapus file pada client

sftp> rm test2.txt

Removing /home/ubuntu/test2.txt
sftp> ls -l

drwxrwxr-x    2 ubuntu     ubuntu            6 Apr 29 21:33 public_html
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:39 ubuntu.txt
-rw-rw-r--    1 ubuntu     ubuntu           10 Apr 29 21:45 test.txt

# Menjankan perintah pada client

sftp> !cat /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
...
ubuntu:x:1001:1001::/home/ubuntu:/bin/bash

# keluar dari sftp

sftp> quit

221 Goodbye.
```
3. SSH Key-pair Authentication

Key-pair ini maksudnya adalah kita dapat mengakses ke server tanpa menginputkan password, hal itu dapat dilakukan karena kita memiliki kunci private yang sesuai dengan kunci public yang ada pada server. Berikut konfigurasinya : 
```bash
ubuntu@serverssh:~$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Your identification has been saved in /home/ubuntu/.ssh/id_rsa.
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub.
The key fingerprint is:
30:ee:f0:47:38:9d:8a:24:5e:01:c8:13:df:15:40:b4 ubuntu@serverssh
The keys randomart image is:

ubuntu@serverssh:~$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

ubuntu@serverssh:~$ chmod 600 ~/.ssh/authorized_keys

# untuk menambahkan agar lebih aman
root@serverssh:~# vi /etc/ssh/sshd_config

PasswordAuthentication no
root@serverssh:~# systemctl restart ssh 
```
```bash
# Pada client
ubuntu@client:~$ mkdir ~/.ssh

ubuntu@client:~$ chmod 700 ~/.ssh
# copy the secret key to the local ssh directory

ubuntu@client:~$ scp ubuntu@10.20.20.50:/home/ubuntu/.ssh/id_rsa ~/.ssh/

ubuntu@10.20.20.50 password:
id_rsa
ubuntu@client:~$ ssh ubuntu@10.20.20.50

Enter passphrase for key '/home/ubuntu/.ssh/id_rsa': 
Last login: Sat Apr 28 20:30:53 2018 from client.example.com
ubuntu@serverssh:~$     # just logined
```
Yaps, selesai sudah, beberapa konfigurasi sederhana pada ssh server di ubuntu 18.04, sampai jumpa di tutorial berikutnya!
      edit

0 comments:

Post a Comment