All Projects → geocar → inet_ssh_dist

geocar / inet_ssh_dist

Licence: other
SSH distribution for erlang

Programming Languages

erlang
1774 projects
Makefile
30231 projects

Projects that are alternatives of or similar to inet ssh dist

M-NMF
An implementation of "Community Preserving Network Embedding" (AAAI 2017)
Stars: ✭ 119 (+158.7%)
Mutual labels:  clustering
BetaML.jl
Beta Machine Learning Toolkit
Stars: ✭ 64 (+39.13%)
Mutual labels:  clustering
acoustic-keylogger
Pipeline of a keylogging attack using just an audio signal and unsupervised learning.
Stars: ✭ 80 (+73.91%)
Mutual labels:  clustering
SHARP
SHARP: Single-cell RNA-seq Hyper-fast and Accurate processing via ensemble Random Projection
Stars: ✭ 14 (-69.57%)
Mutual labels:  clustering
algorithms
The All ▲lgorithms documentation website.
Stars: ✭ 114 (+147.83%)
Mutual labels:  clustering
postsack
Visually cluster your emails by sender, domain, and more to identify waste
Stars: ✭ 288 (+526.09%)
Mutual labels:  clustering
ParallelKMeans.jl
Parallel & lightning fast implementation of available classic and contemporary variants of the KMeans clustering algorithm
Stars: ✭ 45 (-2.17%)
Mutual labels:  clustering
opensvc
The OpenSVC node agent
Stars: ✭ 27 (-41.3%)
Mutual labels:  clustering
RAE
基于tensorflow搭建的神经网络recursive autuencode,用于实现句子聚类
Stars: ✭ 12 (-73.91%)
Mutual labels:  clustering
Machine-learning
This repository will contain all the stuffs required for beginners in ML and DL do follow and star this repo for regular updates
Stars: ✭ 27 (-41.3%)
Mutual labels:  clustering
TrajSuite
TrajSuite is a cross-platform Java application that provides a suite of trajectory data-mining and visualisation features.
Stars: ✭ 15 (-67.39%)
Mutual labels:  clustering
scarf
Toolkit for highly memory efficient analysis of single-cell RNA-Seq, scATAC-Seq and CITE-Seq data. Analyze atlas scale datasets with millions of cells on laptop.
Stars: ✭ 54 (+17.39%)
Mutual labels:  clustering
AnnA Anki neuronal Appendix
Using machine learning on your anki collection to enhance the scheduling via semantic clustering and semantic similarity
Stars: ✭ 39 (-15.22%)
Mutual labels:  clustering
nbodykit
Analysis kit for large-scale structure datasets, the massively parallel way
Stars: ✭ 93 (+102.17%)
Mutual labels:  clustering
dtw-python
Python port of R's Comprehensive Dynamic Time Warp algorithms package
Stars: ✭ 139 (+202.17%)
Mutual labels:  clustering
VOSviewer-Online
VOSviewer Online is a tool for network visualization. It is a web-based version of VOSviewer, a popular tool for constructing and visualizing bibliometric networks.
Stars: ✭ 44 (-4.35%)
Mutual labels:  clustering
torch DCEC
Pytorch Deep Clustering with Convolutional Autoencoders implementation
Stars: ✭ 73 (+58.7%)
Mutual labels:  clustering
topometry
A comprehensive dimensional reduction framework to recover the latent topology from high-dimensional data.
Stars: ✭ 64 (+39.13%)
Mutual labels:  clustering
consul-cluster-manager
Consul - based cluster manager that can be plugged into Vert.x ecosystem.
Stars: ✭ 17 (-63.04%)
Mutual labels:  clustering
Leaflet.MarkerCluster.LayerSupport
Sub-plugin for Leaflet.markercluster plugin; brings compatibility with Layers Control and other plugins
Stars: ✭ 53 (+15.22%)
Mutual labels:  clustering

inet_ssh_dist

inet_ssh_dist is an Erlang distribution (network protocol) that runs over ssh.

Configuration could be as simple as,

-proto_dist inet_ssh

and then everything goes over ssh. Even epmd.

  • No you don't need a special SSH server.
  • No you don't need the Erlang SSH server (and in fact, this isn't even supported yet)

An ssh known_hosts must already be populated since the distribution will refuse to accept new hosts on an ad-hoc basis.

Using as a road-warrior

If your Erlang cluster is already using inet_dist_tcp and you can ssh to your nodes, then you don't have to do anything except use -proto_dist inet_ssh on your road-warrior machine, and tell Erlang what your node username is, e.g.

-proto_dist inet_ssh -ssh_default_user erlang

Using for cluster-communication

Note this isn't very fast, but if you can't get IPSEC working this is a lot easier than getting TLS working right.

Creating a user for restricted port forwarding

First, make sure you know what port Erlang is going to use, by adding the following to the command line:

-ssh_default_user erlang
-inet_dist_listen_min 10069
-inet_dist_listen_max 10069

Edit /etc/ssh/sshd/config:

Match User erlang
  AllowTcpForwarding local
  X11Forwarding no
  PermitTunnel no
  PermitTTY no
  GatewayPorts no
  AllowAgentForwarding no
  AllowStreamLocalForwarding no
  PermitOpen localhost:10069
  ForceCommand echo 'This is a restricted account'

Reload sshd. Then create the user:

sudo useradd -m erlang

You can add keys manually (but not using ssh-copy-id).

Adding an SSH key that can only be used for Erlang

If you don't have root, or you share your application user with your release team (ha ha ha enterprise), then you will want to add the ssh key directly to the user account.

First, make sure you know what port Erlang is going to use, by adding the following to the command line:

-ssh_default_user erlang
-inet_dist_listen_min 10069
-inet_dist_listen_max 10069

Then add to the beginning of every restricted key in your ~/.ssh/authorized_keys file:

command="echo 'This is a restricted account'",no-agent-forwarding,no-X11-forwarding,permitopen="localhost:10069"

Here's a complete example, but obviously use your own key:

command="echo 'This is a restricted account'",no-agent-forwarding,no-X11-forwarding,permitopen="localhost:10069" ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqrlwlnH3xpHntabqfgGBrMOPc83ShDCzTNskx+wQ30sScsONjikuyKQ0FV34RDGhSsd3VpNE8hUpYTVPPCI0wDgOZrUSKWGSbN9s6q1OOcaKRnuOxBguFdgimDemFuQ3VFj1hzZ0ZHt9tq442AQjpDdxHb8KBiiu/qziTvPVP0hzO7xty3ebBxxuRn7vSnKqswM8PQOqJXksok38PoxTDL2l9Nuz5vhl6gS8KA7szlGpve+EnYNgr9ob0QEm5TqKFbYwpaSuOCEQivc/m3urNUIis80sHP/PWFVK4sPc48cpvn6Tzosx+GK5j2KMynJVOES4Hc8LyRWysssBFQyZhw== rsa-key-20000000

Verifying you've got a restricted SSH setup

First, make sure what doesn't work:

ssh erlang@host #connection should be closed
ssh erlang@host /bin/date #connection should be closed and date is not executed
ssh -N -D 10069 erlang@host #wrong forwarding type
ssh -N -L 8080:127.0.0.1:80 erlang@host #wrong port number
sftp erlang@host #wrong subsystem

then verify what works:

ssh -N -L 1234:localhost:10069 erlang@host
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].