Skip to main content

How to setup 2FA On Linux SSH Login

  This is a simple setup guide to enabling Two Factor Authentication (2FA) on Linux SSH login. I this article I wont go deep into setup and issues that I have faced when implementing this. First thing is first Update your system first. I have used Ubuntu 20.04 and it is always up to date. To enable 2FA you need to install google authenticator modules sudo apt install libpam-google-authenticator Configuration for PAM and SSHD Add the the following line to /etc/pam.d/sshd and After adding this line please restart the sshd services.  auth required pam_google_authenticator.so Go to /etc/ssh/sshd_config and check if the following line exist. Default value will be "no" so change it to "yes" to activate.  ChallengeResponseAuthentication yes Configuration for Authenticator In the terminal run google authenticator command It will ask few things to acknowledge by user. Details you can see from the below video. Once this part is done you are ready to use the 2FA in ubuntu. T

Solution for avrdude: stk500_getsync(): not in sync: resp=0x00

Its been a while that i have noticed an error that sometime frustrates. When i first start using Arduino Uno and flash custom ATMEGA328P firmware i have faced tons of problems and each of them ease my work when i found a cause and solution for that.
Most of Arduino users faced this and thousands of posts were in the forums related to avrdude: stk500_getsync(): not in sync: resp=0x00 error. Some solutions in the forums are not much solved the issues. Earlier i faced this when i built a custom PCB with ATMEGA328P-AU.
ATMEGA328P-AU
 After flashing the firmware via ICSP (In circuit Serial Programming) Then i used FTDI serial to load the sketch. Finally the error occurs and the whole project came to a halt.

Screen shot of Arduino IDE

I have spent most of the time troubleshooting and found solutions for it.

I will state what i have found, which cause this error normally.

  1. Wrong device selected from the IDE
  2. PCB/Circuit designing issues.
  3. FTDI module / Driver & software issues.

Wrong device selected from the IDE


Arduino IDE > Tools menu

Most cases by mistake you might have selected a wrong device for FTDI programming. If you have loaded firmware for Uno you have to select Arduino Uno as shown in the image. So avoid this silly mistake while you are flashing and programming. Don't be too confident, because even experienced programmers have done silly mistakes like this. :)

PCB/Circuit designing issues.

If you want to load the sketch via FTDI, there is some thing that you need to keep on mind. I have seen in forums the schematic has a very common mistake.
FTDI/Serial module normally have VCC,GND,RX,TX,DTR,CTS totally six pins or five (without CTS). Most common mistake is when connecting FTDI module to ATMEGA328 or any for loading sketch, they usually connect VCC,GND,RX and TX or sometimes VCC,GND,RX,TX,DTR (DTR pin is connected directly to ATMEG's reset pin). Most cases connecting RX to RX or TX to TX or missing GND pin.

All the above  combinations cause the issue and to avoid this its better use the following combination.

FTDI        Arduino
RX             TX
TX             RX
VCC          VCC
GND         GND
DTR          To reset pin with a series ceramic capacitor of (0.1uf / 104)

I have fixed most of sync issues by maintaining this configuration, :)

FTDI module / Driver & software issues

I have seen some of Arduino users complaining about the FTDI module issues. Some say the FTDI chip from china are fake and it don't support driver updates of FTDI either in windows/Linux.
I would like to say that i always import my electronics components from china and i never faced such issues in FTDI modules or chips they sell. Its been more than two years that i am using this module and never faced any driver or software issues in windows or Linux.
FTDI module (FT232RL)
If you follow these guides and still unable to load the sketch successfully, try this one last step.



Go to the COM settings if you are using windows and decrease RX and TX buffer values and do tick the check box above.

Conclusion.

All these test are done recently after creating a faulty setup to give a better solution for the sync error. I hope this help you all and if i mentioned anything wrong. Please do not hesitate to comment. All positive and negative comments are welcome.



Comments

Popular posts from this blog

SIMCOM SIM900A fixed

Since everyone is interested in this post and lots of request comes to get the firmware, i have put a link so that everyone can download it easily. SIMCOM 900A firmware Its been a while that i was trying to fix the SIM900A GSM module. This module support local GSM band but after some researches it was concluded that it is carrier locked :(. After long conversion of days to actual chip manufacture SIMCOM, they told it can be fixed by updating its firmware to latest original version but unfortunately they don't provide firmware to small parties. I never stop trying to get the firmware and SIMCOM again replied, this time they said contact local SIMCOM supplier and request for firmware. But this little Maldives don't have SIMCOM or any electronics manufacturer. So i contacted my friend coody from NOA LABS/Smart prototyping (a friend in china) and told him to help me. I explained him what to do so he can communicate with SIMCOM in china. Finally he sends and email saying that

Clover Display M302 hack

Its been a while i have this LCD and today i thought of connecting the LCD display to Arduino. Unfortunately i could not found any pin outs of this from any where and from the manufacture. Actually this is very old model which i got from old FAX machine and this display is a very cheap from online sources. Clover Display M302 PCB Ver 1.0 (16x2) which has 10 pin flat cable. After researching for a while from the internet i have seen in many forums people are asking for help on how to connect it and what is the pin configurations? so i thought of helping them as well as my self at the same time. After going through some of my old collections of Russian data of displays and things i found a basic diagram of how 10 pin LCD display configuration.  PIN1   - VSS PIN2   - VDD PIN3   - CONTRAST PIN4   - RS PIN5   - R/W PIN6   - ENABLE PIN7   - DB4 PIN8   - DB5 PIN9   - DB6 PIN10 - DB7 I tried these configurations and wired up to the arduino with the LCD sketch

ESP8266 + DS18B20 Temperature sensor sends data to Thingspeak.com

Its been a while i was searching for a cheap wifi module and with the help of smart-prototyping.com , i was able to get a module almost less than USD 5. To connect the module to breadboard for prototyping, i made a small jig to interconnect with the board easily. So i can wire up the device and interface anything to GPIO's. Be careful with the module cause the device it powered with 3.3V and both UART side levels will be 3.3V so i recommend to use a FTDI converter with 3.3V level select.(one i used can select 3.3 and 5 volts) if you connect 5V the module will fry up. If you have 5V or 12V supply to power up the module i suggest to use LD1117V33 to make 3.3V. The stock Firmware in the ESP8266 supports AT commands and for communicating with this need an micro-controller like Arduino. But i want to make a simple solution for that without using external micro-controller. NodeMCU firmware was the best thing i found. To upload the NodeMCU firmware please do a google sear