Skip to content

github.com - how to set up ssh key usage under linux

So, after telling it a longer time, github has disabled it https authentication mechanism.

From now on, you have to use ssh keys and a configuration. Following is a simple how to do it.

First of all, generate your ssh key

#my advice, name the key to your usage
#e.g.: com_github_<yourusername>
ssh-keygen -t rsa -b 4096

Next up, you have to upload the pub key to github account.

After that, you have to adapt the ~/.ssh/config file.

Host github.com
    Hostname github.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/com_github_<yourusername>

This was the easy part. Now to the final step that took me ages. You have to go through all your repositories and check if you use ssh or http as the transport protocol to work with github. Go to a repository and open up your .git/config file.

Replace any thing that starts with https://github.com/... with git@github.com:.... It should only be in the lines starting with url =. After that git remote -v should work fine. But yes, you have to do it for all repositories.

If you have to stick to use HTTPS operations (like working from behind a firewall where ssh port 22 is restricted), try to follow this guide to setup an access token per device.

  • Open your developer settings new token page
  • Give it a name like "work "
  • Give it an expiration date
  • select the scopes and permissions
  • Click on Generate token
  • Update your credential manager
    • e.g. Windows it is the clickpath control panel -> credential manager -> generic credentials
    • or for german windows users systemsteuerung -> benutzerverwaltung -> eigene anmeldeinformationen verwalten -> windows-anmeldeinformationen -> github.com auswählen

Jörg Ziercke fordert Mindestspeicherfrist und eine Meldepflicht für TOR-Nutzung an

[...]
Angesichts des erhöhten Datenaufkommens habe das BKA angefangen, mit automatischen Extraktionsprogrammen zu arbeiten. Auf diese Weise könnten polizeiliche Sachbearbeiter Kerninformationen extrahieren, ohne selbst etwa russisch oder arabisch zu können. Aktuell würden auf diese Weise die Sprachen Kurdisch-Sorani und Kinyarwanda mit großem Erfolg in der Terrorbekämpfung eingesetzt. Der computergestützten Auswertung großer fremdsprachiger Datenmengen gehört Ziercke zufolge die Zukunft. Allerdings berge eine solche Technik auch Probleme: "Ist die Nachvollziehbarkeit der intelligenten Datenselektion auch durch Gerichte zu gewährleisten? Werden durch sie die Rechte der Verteidigung eingeschränkt?“
[...]
Aktuell beschrieb Ziercke die Nutzung von Bitcoins und die in TOR-Netzwerken versteckte Silk Road 2.0 als größte Herausforderungen für die Kriminalistik. Während das Auswärtige Amt den TOR-Entwickler Roger Dingledine einlädt und seine Arbeit mitfinanziert, möchte Ziercke die freie Nutzung von TOR-Software am liebsten unter staatliche Melde-Auflagen stellen.
[...]

Quelle

Das die Mindestspeicherfrist, mal wieder, durchs Dorf getrieben wird war klar. Das nur danach gefragt wurde, ob man die computergestützte Auswerkung nicht rechtlich gültig zulassen könnte, zeigt wieder einmal die Realitätsfremde des Greisen BKA Oberhaupts (aus dem Land, für den das Internet "für alle Neuland ist").
. Eine Meldepflicht für genutzte Software? Was kommt als nächstes, ein Führerschein für die SSH, oder "OpenVPN nur zwischen 9 und 18 Uhr"?

bash function to search and replace in all files with special extension recursively

Pretty much, the code is below. It is a part of my function collection for the bash.

####
# Replaces a string in all files in given path and below
# taken from: http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/
# taken from: http://stackoverflow.com/questions/4437901/find-and-replace-string-in-a-file
# taken from: http://stackoverflow.com/questions/7450324/how-do-i-replace-a-string-with-another-string-in-all-files-below-my-current-dir
#
# @author stev leibelt 
# @since 2013-7-30
####
function net_bazzline_replace_string_in_files ()
{
    if [[ $# -lt 3 ]]; then
        echo 'invalid number of arguments provided'
        echo 'command search replace fileextension [path]'
        return 1
    fi

    if [[ $# -eq 4 ]]; then
        find "$4" -name "*.$3" -type f -exec sed -i 's/'"$1"'/'"$2"'/g' {} \;
    else
        find . -name "*.$3" -type f -exec sed -i 's/'"$1"'/'"$2"'/g' {} \;
    fi
}