Do you know that 96.3 percent of the top 1 million web servers are running Linux?
Yes. You heard that right. That was reported in an article published by ZDNet.
In this article, we’ll be learning about connecting to a Linux server using SSH, communicating with other users on the server, and a handy file transfer mechanism.
A quick note to the readers. The IP address that I’ve given in the example commands and the one in the example screenshots will vary. The reason is, I don’t have a server to demonstrate everything, so I made my laptop a server. So, all my example screenshots will be displaying my local IP addresses beginning with 192.168....
How to Log in to a Server Running Linux
I love to develop software, but I really dislike DevOps and deployments. When I have some DevOps work, I’ll hand it over to the specialist in my team and stay away.
The reason is my lack of experience in handling servers. But sometimes, when my team members are not available, I’m forced to do deployments.
So, the initial step for a (manual) deployment is to log in to the server. To log in, you need to know the IP address and the password of the server.
Above all, you need to have the SSH client installed on your machine. This comes pre-installed on almost all Linux distros.
If you don’t have it installed, you can install it by running the below command in the terminal:
sudo apt install openssh-client
In order to access the server via SSH, the server should have SSH Server installed and the service running in it. This will be pre-installed on almost all Linux servers.
Let’s connect to the server now.
You need the following items to login to the server:
IP Address of the server machine
Username of the server
-
The password of the user
ssh user@
Here’s an example command:
ssh ubuntu@45.244.96.73
The above command will ask for the password. If you enter the password, it will log in to the server.
Alternatively, you can log in without any prompt by adding the -p option with the sshpass command prepended to ssh command. You need to have sshpass installed to try this method.
The syntax looks like this:
sshpass -p ssh user@
And here’s a quick example:
sshpass -p password ssh [email protected]
This is not the recommended way. Command line arguments are visible to all users (e.g. ps -ef | grep sshpass). sshpass attempts to hide the argument, but there is still a window during which all users can see your password passed by the argument. There's also a command in Linux called history which displays your past commands. Any user who gains access to your machine may run the history and find your server login credentials, whereas if you've entered the password in a prompt, it'll not be shown to the users in history command.
Here’s the output of history command,
How to Log in to a Particular User in the Linux Terminal
In Linux, we can log in to different users using two different approaches:
ssh
login
How to log in with SSH
As discussed with the SSH command, we can log in to another user using the same syntax.
ssh @
ssh root@45.244.96.73
How to log in with the login command
You can use the login command to switch the user inside the server.
Let’s assume you’ve logged into the ubuntu user in the 45.244.96.73 server. Later you found that you want to switch to the ak user to perform some admin operations. In such a case, you can quickly switch the user using the login command.
Syntax for the login command is:
sudo login
And here’s an example to switch to the root user:
sudo login ak
The above command will prompt for the password similar to login via SSH.
Hurray, we successfully logged in to another user. Now let’s explore how to communicate with these sessions.
A quick note before jumping onto the communication section. If you wish to log out of the logged-in user, you can simply run the logout command.
How to Communicate Between Sessions in Linux
Did you know that you can use your Linux terminal as a chat interface?
Well, yes — you can. If you and your colleagues are connected as their own users to the same server using SSH, then you all can communicate via the terminal.
As with all such features, there are a few prerequisites to continue.
First, make sure that message access is enabled in the receiver system. To verify that, type the following command in the terminal:
mesg
The response will be either yes or no.
is y - Message access enabled
is n - Message access disabled
To toggle this feature, you have to pass the symbol along with the mesg command.
mesg y # Enable message access
mesg n # Disable message access
Let’s try to communicate with others.
There are two commands available to communicate:
write
wall
The write and the wall commands use a fairly simple mechanism. Both commands take a message from one session and deliver it to another session(s).
How to use the write command
You can use the write command to message a single user (Direct Message).
write
write ak
After entering this command, it prompts the input message to send. We can send any number of messages using the write command.
Here’s an example showing the communication between the users ak and gogosoon:
Let’s turn off messaging on the ak user and try to send a message from the gogosoon user.
mesg n
How to use the wall command
You can use the wall command to write messages to all logged-in users. This command will display the message or the contents of a file to all the logged-in users. Basically, it will broadcast the message to all the sessions.
wall
Here we can see the message in the user ak. Similarly, it prompts the message to every logged-in user.
How to Transfer Files to/from the Server Using the Linux Terminal
I believe most people would recommend using FTP to transfer files from and to the server. FTP provides more control over the files such as renaming, deleting, moving, and modifying files from the remote computer. FTP does not offer protection against anyone who may be trying to view your network credentials.
We can do this using a Linux terminal — and believe me, it’s super simple.
You can transfer files using the scp command.
SCP stands for Secure Copy Protocol. This command allows the user to share the files in a secure way. Unlike FTP, SCP is highly secure. It uses a secure shell to encrypt both your data and credentials. SCP does not provide facilities to control files.
Since this command follows the end-to-end encryption protocol, it uses encryption over an SSH connection. This will protect the files from suspicious attacks.
Transferring files via SCP will be slow when compared with FTP. But, it’s a better alternative to FTP if you need a one-time movement of files.
The syntax for the SCP command looks like this:
scp [OPTIONS] @: @:
Using the SCP Command we can do the following operations,
Copy the file from our machine to the server machine
Copy the file from the server machine to our machine
Copy the file from one server to another server
Let’s look at each of these operations in more detail now.
How to copy the file from the client machine to the server machine
When copying files from the local to the server machine, you should enable SSH in the server. This is because SCP uses SSH to establish the connection between the client and server machines.
scp user@hostname:
scp sample.txt [email protected]:/home/ak/
The above screenshots show that the file was copied to the server.
How to copy the file from the server machine to the client machine
Let’s see how to transfer the file from the server to our local machine:
scp server_username@:
scp ak@45.244.96.73:/home/ak/server_file.txt /home/gogosoon/test
This command will copy the file server_file.txt from the server machine to the local machine in the test directory.
If you leave the local_path empty, the file will be copied to the home directory.
How to copy the file from one server to another server
Let’s assume you’re taking a file backup from a server. You don’t want this file to be stored on your machine due to some security concerns. But, you want to transfer this file to another server.
Copying files from one server to another server is also possible with the scp command:
scp @: @.com:/
scp ak@45.244.96.73:/home/ak/script.sh gogosoon@45.244.196.173:/home/gogosoon/
Conclusion
Alright, we’ve come to the end of this tutorial. I hope you all enjoyed learning about these helpful commands.
If you are a DevOps Engineer or Linux Developer, or you’re learning Linux, these commands will be very useful. If you enjoyed this guide, please share it with your colleagues/friends who are more into working on servers.
To learn more about Linux, subscribe to my email newsletter on my site and follow me on social media.
Top comments (0)